Repository navigation
Restore native Window menu move controls - #9546
Closed
austinywang wants to merge 2 commits into
Closed
austinywang wants to merge 2 commits into
austinywang wants to merge 2 commits into
Conversation
📝 WalkthroughWalkthroughThe main window now remains natively movable while background dragging stays disabled. Active pane-tab and folder drags suppress movability through shared state. Documentation and tests describe this behavior and frame reconciliation after display changes. ChangesWindow drag behavior
Estimated code review effort: 2 (Simple) | ~10 minutes Sequence Diagram(s)sequenceDiagram
participant BonsplitPaneTabDrag
participant configureCmuxMainWindowDragBehavior
participant isWindowDragSuppressed
participant NSWindow
BonsplitPaneTabDrag->>NSWindow: Begin pane-tab drag
configureCmuxMainWindowDragBehavior->>isWindowDragSuppressed: Check suppression state
isWindowDragSuppressed->>NSWindow: Preserve suppressed movability
BonsplitPaneTabDrag->>NSWindow: Finish pane-tab drag
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 25✅ Passed checks (25 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Aug 6, 2026
blakedunson
approved these changes
Aug 18, 2026
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.
Summary
Fixes #7446
Testing
4ae7bec5ae:./scripts/reload-cloud.sh xctest --tag sym7446-red-unit --only-testing cmuxTests/MainWindowDragBehaviorTests(sym7446-red-unit-6b28fc63f950) failed the two new movability assertions as expected.f7e50e3b24:./scripts/reload-cloud.sh xctest --tag sym7446-green-unitwithMainWindowDragBehaviorTests,FolderWindowMoveSuppressionTests,WindowMoveSuppressionHitPathTests,TitlebarInteractiveControlTests,CmuxMainWindowConstrainFrameTests, andAppDelegateWindowFrameReconcileTests(sym7446-green-unit-2fbb500a73f0) passed 33 XCTest cases and 6 Swift Testing cases../scripts/reload-cloud.sh --tag sym7446 --builder blacksmith --launchsucceeded on Blacksmith macOS 26 run 30959268214; no local-build fallback was used. The downloaded app embedded ephemeral build commitcb3d7566d, whose parent is exact PR HEADf7e50e3b24./tmp/cmux-debug-sym7446.sockreturnedPONG. With the tagged app active and itsCmuxMainWindowboth main and key on Studio Display XDR, runtime inspection saw both Studio Display XDR and Built-in Retina Display,isMovable == true,isMovableByWindowBackground == false, and the tracked Window menu reported Fill, Center, Move & Resize, and Move to Built-in Retina Display all enabled. The tagged app was stopped withpkill -f "DerivedData/cmux-sym7446"; PID 82759 exited and the tagged socket was removed.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Restores native Window menu move controls for main windows by keeping them movable except during explicit suppression. Background dragging stays off, and off‑screen/titlebar safety remains in place.
isMovable = trueunlessisWindowDragSuppressedto re-enable Window > Fill, Center, and Move & Resize.isMovableByWindowBackground = falseso titlebar drag zones control movement and pane-tab/folder drags can suppress it.Written for commit f7e50e3. Summary will update on new commits.
Summary by CodeRabbit
Enhancements
Tests