Skip to content

Implement pane drag docking#13

Merged
HelloThisWorld merged 2 commits into
mainfrom
codex/implement-pane-drag-docking
Jul 22, 2026
Merged

Implement pane drag docking#13
HelloThisWorld merged 2 commits into
mainfrom
codex/implement-pane-drag-docking

Conversation

@HelloThisWorld

Copy link
Copy Markdown
Owner

Summary

Implement the missing runtime pane drag-and-drop adapter for winTerm Visual Docking.

The pane header previously rendered a drag grip, while the runtime path only focused the pane. This connects grip pointer input to the existing docking state machine, target resolver, preview model, and layout transaction coordinator.

Related issues

No linked issue.

Detailed changes

  • Capture pointer input only from the dedicated pane grip, with movement thresholds and mouse/touch handling.
  • Cancel safely on Escape, pointer cancellation, capture loss, or source detachment.
  • Render model-driven Top, Bottom, Left, Right, and New tab Snap zones.
  • Render the proposed-layout preview before committing a drop.
  • Move the existing live pane within the tab without restarting the shell or replacing terminal content.
  • Move a pane into a standalone tab from the center target.
  • Validate minimum split geometry, reacquire targets by stable pane ID, and preserve the source on failed commits.
  • Extend source-boundary validation and document the runtime adapter and current cross-window limitation.

Validation performed

  • Release x64 build of src/cascadia/TerminalApp/TerminalAppLib.vcxproj: passed.
  • Release x64 build of src/cascadia/ut_app/TerminalApp.UnitTests.vcxproj: passed.
  • Settings Model TAEF tests: 203 passed, 0 failed.
  • Terminal App TAEF tests: 51 passed, 0 failed.
  • Control TAEF tests: 30 passed, 0 failed.
  • scripts/winterm/test-pane-controls.ps1 -Configuration Release -SourceOnly: passed.
  • scripts/winterm/test-docking-ui.ps1 -Mode Validate: passed.
  • git diff --check: passed.
  • Multi-window UI automation was not executed. Cross-window and outside-window pane-handle drops remain disabled by design.

Checklist

  • The change is focused and does not include unrelated formatting.
  • Tests were added or updated where appropriate.
  • All tests claimed above actually ran and passed.
  • User-facing behavior and limitations are documented in this repository.
  • Version or schema changes include compatibility and migration notes.
  • Package identity, winterm.exe, and Microsoft Terminal coexistence remain isolated.
  • No command text, terminal output, clipboard content, credentials, or private paths are logged.
  • New source and script files contain the appropriate MIT license header.
  • I did not include generated build output, secrets, certificates, or local absolute paths.

@HelloThisWorld
HelloThisWorld marked this pull request as ready for review July 22, 2026 16:45
@HelloThisWorld
HelloThisWorld marked this pull request as draft July 22, 2026 16:45
@HelloThisWorld
HelloThisWorld marked this pull request as ready for review July 22, 2026 16:47
@HelloThisWorld
HelloThisWorld marked this pull request as draft July 22, 2026 17:56
@HelloThisWorld
HelloThisWorld marked this pull request as ready for review July 22, 2026 18:09
@HelloThisWorld
HelloThisWorld merged commit ecd0350 into main Jul 22, 2026
5 checks passed
@HelloThisWorld
HelloThisWorld deleted the codex/implement-pane-drag-docking branch July 22, 2026 18:09
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