[3.x] Fix RichTextLabel auto-wrapping on CJK texts #49280
Merged
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 fixes #21482.
There is still 1 px difference between when they wrap the last character after this fix. This is becauses
Label
autowraps if the text chunk width >= frame width, whileRichTextLabel
autowraps if text chunk width > frame width. I think this is not related to the original issue and worth a dedicated PR if desired.Complex Text Layout on the
master
branch is the proper way to solve the wrapping problem, but it seems that it won't be backported.This PR also supersedes #45290. I also added a fix to solve the issue mentioned in #45290 (comment), allowing word breaking on CJK and non-CJK edge. I'll revert this additional fix if it should be a separate PR.
Before: (there is unexpected linebreak after "Hopefully, ", and "should" wraps after "sh")
After: