Fixed too much text being copied when copying chat messages #4812
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.
Description
This is a continuation of #3080. The same approach is used.
Because of the reply button being in every message, setting
hasTrailingSpace
on the last element (even the last text element) when building as mentioned in #3080 (comment) doesn't work.Instead,
hasTrailingSpace
is set on the last layout element. With the button enabled, a trailing space is copied (as that space is visually selected). Without the button, no trailing space is copied. When selecting multiple lines, having no delimiter after a message is bad, so a newline is added (over a space to distinguish lines).Fixes #2449.
Additionally, this fixes the issue of copying emotes when they're not selected (e.g. in
a 🅰
witha
selected, Chatterino would copya 🅰
).