Support for simultaneously moving multiple tabs across windows#20006
Open
DevDengChao wants to merge 6 commits intomicrosoft:mainfrom
Open
Support for simultaneously moving multiple tabs across windows#20006DevDengChao wants to merge 6 commits intomicrosoft:mainfrom
DevDengChao wants to merge 6 commits intomicrosoft:mainfrom
Conversation
Extract reusable insertion-index helpers for multi-tab drag/drop and cover them with focused unit tests. This chunk was validated by building TerminalApp.UnitTests and running TabDragDropHelpersTests (5/5 passed). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add the product plumbing and LocalTests coverage for multi-tab selection, block reordering, startup action export, and cross-window attach behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Require stable baseline tab observations in the tab LocalTests and surface UI thread exceptions explicitly so the multi-tab drag cases fail diagnostically instead of flaking. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve multi-tab drag state through cross-window drops, add a minimal test-only tab-range selection hook, and extend the UIA smoke harness so it can validate tear-out and attach flows across real top- level windows. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
check-spelling found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
This comment has been minimized.
This comment has been minimized.
Author
|
@microsoft-github-policy-service agree |
Rename the UIA smoke test variables that triggered check-spelling, allow the Win32 API tokens used by the harness, and drop stale expect entries that are no longer present in the tree. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
lhecker
requested changes
Mar 24, 2026
Member
There was a problem hiding this comment.
Thank you for the PR!
It's fine that you used AI to make these changes, but you should review your changes before submitting them. Your agent replaced all of the newlines with LF in TerminalPage.h/cpp and IslandWindow.h. Additionally, the TerminalApp.cs cannot be merged as-is, naturally.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Author
|
Addressed the latest review feedback in 6bd43e0:
Validation for this pass (without rerunning UIA):
|
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 of the Pull Request
References and Relevant Issues
Detailed Description of the Pull Request / Additional comments
This branch is split into four reviewable commits:
1b5b1a0extracts reusable tab insertion-index helpers and covers them with focused unit tests.f31d8a5implements the product-side multi-tab drag/drop plumbing and LocalTests coverage.3382c4dstabilizes the tab LocalTests so the new drag scenarios fail diagnostically instead of flaking.278af5cadds the test-only tab-range selection hook plus the UIA harness/smoke coverage for real cross-window drag/drop.Product behavior covered by this PR:
The UIA smoke also guards against the false-positive path I hit while recording: if dropping
DragTabB + DragTabContoDragTabAcreates a new top-levelDragTabBwindow instead of merging into the destination window, the test now fails explicitly.Video preview
2x MP4: uia-drag-demo-primary-fixed-2x.mp4
Release asset page: multitab-drag-uia-demo-20260324
Validation Steps Performed
TerminalApp.UnitTestsand ran*TabDragDropHelpersTests*(5/5 passed).TerminalApp.LocalTests/TestHostAppand reran:TerminalAppLocalTests::TabTests::TryInitializePageTerminalAppLocalTests::TabTests::CreateTerminalPageTerminalAppLocalTests::TabTests::TrackSelectedTabsVisualStateTerminalAppLocalTests::TabTests::MoveMultipleTabsAsBlockTerminalAppLocalTests::TabTests::BuildStartupActionsForMultipleTabsTerminalAppLocalTests::TabTests::AttachContentInsertsDraggedTabsAfterTargetIndexCascadiaPackage.wapproj, refreshed the unpackaged terminal layout, rebuiltWindowsTerminal.UIA.Tests, and ranWindowsTerminal.UIA.Tests.SmokeTests.DragMultipleTabsAcrossWindows(passed).PR Checklist