feat: Add option to trigger Loop via right-click while dragging a window - #1150
Open
atimoda wants to merge 8 commits into
Open
feat: Add option to trigger Loop via right-click while dragging a window#1150atimoda wants to merge 8 commits into
atimoda wants to merge 8 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces a new, highly ergonomic way to trigger the Loop radial menu: holding the right mouse button while dragging a window.
For users who already use their mouse to drag windows around, it's often more practical to just right-click to invoke Loop, rather than reaching for a keyboard keybind.
Changes included:
RightClickWhileDraggingTriggerwhich activates the Loop menu when a user right-clicks whileWindowDragManager.shared.isDraggingWindowis active."Right-click to trigger while moving window", which is enabled by default.WindowDragManagerwhere the drag state (resizeContextandisDraggingWindowMirror) was never reset onleftMouseUpif window snapping was disabled in settings. This previously caused the app to think a window was being dragged indefinitely after the first drag.MouseInteractionObserverto track.leftMouseDraggedand.rightMouseDraggedevents. Since macOS stops emitting.mouseMovedwhen mouse buttons are held, the radial menu direction selection was completely blind to mouse movements during a drag. Now, the radial menu smoothly tracks the cursor while dragging a window.How has this been tested?
WindowDragManagerdrag state properly resets on mouse release, preventing regular right-clicks from accidentally triggering the Loop menu.Screenshots (if appropriate)
Checklist:
Please describe to which degree, if any, an LLM was used in creating this pull request.
I collaborated with an AI coding assistant (Google Antigravity / Gemini) to write the Swift implementation for the new
RightClickWhileDraggingTrigger, the settings UI additions, and the fixes toWindowDragManagerandMouseInteractionObserver. I personally compiled, ran, and thoroughly manually tested all the resulting changes on my local macOS environment to ensure they work perfectly.