✨ Modularization of trigger key detection, system window manager bug fixes#798
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR refactors the trigger key detection system into modular observers, implements system window manager integration, and transitions several singletons to the shared pattern. The refactoring separates trigger key and middle-click detection logic into dedicated observer classes while maintaining the same functionality.
Key Changes:
- Modularized trigger key detection into dedicated observer classes
- Integrated system window manager padding settings dynamically
- Migrated multiple manager classes to the singleton pattern with shared instances
Reviewed Changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| Loop/Managers/Triggers/TriggerKeyObserver.swift | New dedicated class for observing trigger key events |
| Loop/Managers/Triggers/MiddleClickObserver.swift | New dedicated class for observing middle-click events |
| Loop/Utilities/PaddingSettings.swift | New utility for dynamic padding settings based on system window manager |
| Loop/Utilities/ScreenUtility.swift | Renamed from ScreenManager to ScreenUtility with visibility improvements |
| Loop/Managers/SystemWindowManager.swift | Removed syncPadding method and improved padding property implementation |
| Loop/Managers/LoopManager.swift | Refactored to use new trigger observers and shared instances |
| Loop/Window Management/WindowEngine.swift | Updated to use PaddingSettings and ScreenUtility |
| Loop/AppDelegate.swift | Simplified to use shared instances instead of static properties |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
SenpaiHunters
left a comment
There was a problem hiding this comment.
I've tested this locally for a while and reviewed the code. I can't see, feel, or notice any major issues between the new and old versions, so I'll accept this PR into the main.
No description provided.