Copyable#6528
Open
Pok27 wants to merge 5 commits into
Open
Conversation
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.
This PR adds a copy-selection layer for display-only text controls, so things like
Label,RichTextLabel, andOutputPanelcan support text selection and clipboard copy without each control re-implementing input and selection state logic by setting theCopyableattribute totrue. The core of this is a newSelectableTextControlbase class plusISelectableTextLayout, which lets each control provide its own hit-testing / selection rendering while sharing the interaction behavior (UIClick/ drag-select /TextCopy).RichTextEntrynow exposes layout/copy helpers that are used byRichTextLabelandOutputPanel, andTextEditselection rendering has been slightly updated to follow the same approach, to ensure consistent behavior.There is also a small fix in
ClydeHeadless.cs: headless clipboard operations now store/retrieve text in-memory instead of always returning empty text. This is needed for integration test.By default, the copy attribute is enabled only for
OutputPanel, since the others haveMouseFilterMode.Ignoreby default. This can be changed, but it will require some UI fixes. This can be done in another PR.fix space-wizards/space-station-14#510