Repository navigation
feat(splits): exchange pane positions from the header grip - #458
Draft
WilliamWang1721 wants to merge 8 commits into
Draft
WilliamWang1721 wants to merge 8 commits into
WilliamWang1721 wants to merge 8 commits into
Conversation
Refs Kuddev#355. Preserve pane entities, focus and layout ratios; same-axis equalization is out of scope. Authored with GPT-6.1 SOL / high. Remote validation pending.
Preserve header occlusion and terminal text selection. Existing live-control assertions remain; the test now confirms the source grip press before checking threshold activation. Authored with GPT-6.1 SOL / high; GitHub Actions validation pending.
1 task done
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.
Dragging the existing pane header grip onto another pane now exchanges their positions while preserving the live pane entities, PTYs, focus, history, broadcast state and layout ratios. Escape or switching tabs cancels the gesture; dragging outside the terminal retains the existing detach-to-tab behavior.
Refs #355. This implements position exchange; automatic equal sizing of same-direction splits remains outside this PR. The implementation reuses the shared split tree and existing drag capture and hit testing, with no new dependencies or persisted format.
Validation: two author self-reviews and an independent coordinating review completed. Added shared-tree and GPUI event regressions for mixed layouts, entity/focus retention, cancellation, tab switching away and back, and closing the source. Head:
649f91758c2c1f7d1273965b14e0b9be7ece3b05. The first remote run passed architecture and PR-size checks and reported three formatting differences, which are fixed in this head. This head also fixes the test initialization and imports reported by the previous native run; the new native validation is pending; all build, formatting, architecture and test execution runs through GitHub Actions. Native visual and DPI acceptance remain pending, so this PR is a draft.AI assistance: implementation and self-review by GPT-6.1 SOL with high reasoning effort; additional review by the coordinating Codex session, whose exact model and reasoning setting are not exposed.
Latest revision:
3e827fa2947e76259ae4d96d39992ede68bf0a19fixes the confirmed grip event route: header occlusion prevents hitbox-filtered workspace mouse-move callbacks, so pane gestures now use the existing window capture pattern. All original assertions remain; source press/focus/arming assertions were added. Two diff reviews completed (GPT-6.1 SOL / high executor). New upstream CI and exact-head native Windows acceptance are pending; earlier failed runs are not treated as passing evidence.