Skip to content

feat(splits): exchange pane positions from the header grip - #458

Draft
WilliamWang1721 wants to merge 8 commits into
Kuddev:mainfrom
WilliamWang1721:codex/issue-355-pane-reorder
Draft

WilliamWang1721 wants to merge 8 commits into
Kuddev:mainfrom
WilliamWang1721:codex/issue-355-pane-reorder

Conversation

@WilliamWang1721

@WilliamWang1721 WilliamWang1721 commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

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: 3e827fa2947e76259ae4d96d39992ede68bf0a19 fixes 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.

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant