TerminalControl: skip whitespace-only copy-on-select - #20526
Open
tianrking wants to merge 1 commit into
Open
Conversation
With copyOnSelect enabled, a click or drag over blank cells can replace the clipboard with empty or whitespace-only text. Suppress those clipboard writes only on the automatic mouse-release path. Explicit copy actions remain unchanged, and the selection is still marked handled so right-click continues to paste. Closes microsoft#11751.
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
tianrking
marked this pull request as ready for review
August 8, 2026 01:41
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
|
tianrking please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
Contributor License AgreementContribution License AgreementThis Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
|
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
Prevents
copyOnSelectfrom replacing the clipboard when the selected payload is empty or contains only whitespace.References and Relevant Issues
Closes #11751.
Detailed Description of the Pull Request / Additional comments
The automatic copy path now suppresses clipboard events when the extracted plain text consists entirely of whitespace. The suppression is opt-in at the internal copy helper and is enabled only for mouse-release copy-on-select, so explicit copy actions continue to copy whitespace.
The mouse selection is still marked as handled when an automatic copy is suppressed. This preserves the existing copy-on-select behavior where a subsequent right-click pastes instead of re-copying the whitespace selection.
Validation Steps Performed
ControlInteractivitycoverage for a trimmed empty selection, multiline whitespace, the subsequent right-click paste path, non-whitespace automatic copy, and explicit whitespace copy.clang-format --dry-run --Werrorpassed for all changed files.git -c core.whitespace=cr-at-eol diff --checkvalidation passed.Control.UnitTests.vcxprojbuild was blocked before compilation because the checkout did not contain required repository NuGet packages, includingMicrosoft.Windows.ImplementationLibrary.1.0.250325.1. Restore from the configuredTerminalDependenciesfeed was unavailable in this environment, so the test DLL could not be produced locally.PR Checklist