🐞 Avoid cursor stutter when suppressing Mission Control - #1133
Open
jvanderen1 wants to merge 3 commits into
Open
🐞 Avoid cursor stutter when suppressing Mission Control#1133jvanderen1 wants to merge 3 commits into
jvanderen1 wants to merge 3 commits into
Conversation
Rewrite top-edge drag events in an active tap instead of warping the cursor each frame, which caused the stutter reported in mrkai77#609. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
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
With Suppress Mission Control enabled, dragging a window to the top of the screen used to stutter badly (#609).
Why: Loop kept Mission Control closed by warping the cursor 1px down on every drag event (
CGWarpMouseCursorPosition). That fights the user’s upward drag, so the cursor thrashes.Fix: Use an active event tap and rewrite the drag event’s location instead. macOS never sees a sustained top-edge hit, and we don’t warp the cursor.
This matches the original approach from before Loop switched to a listen-only monitor. Suppression still respects the Suppress Mission Control setting and only runs while a window is being dragged.
Fixes #609
How has this been tested?
Local Debug build on macOS Tahoe 26.x (darwin 25.6.0):
Screencast
output.mp4
Checklist:
Please describe to which degree, if any, an LLM was used in creating this pull request.
Cursor (Grok) helped investigate the stutter and draft the change in
WindowDragManager. I reviewed the code, confirmed it builds, and manually tested top-edge dragging before opening this PR.