-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RichTextLabel's visible_characters
no longer accounts for words that break over several lines (Complex Text Layouts regression)
#53874
Comments
Likely a side effect of #42595 since it doesn't happen at a point before its merge, and it completely changes how |
I'm not sure, but the new behavior may be checking the amount of visible characters, then assigning a |
It looks like a couple of attempts have been made to fix it, but they don't address the fundamental design flaw in the new shaping/rendering pipeline. For "typewriter text" to work, the text shaping and layout stage must take the entire string as input (including invisible characters) and produce the complete list of renderable glyphs/quads. It's up to the rendering stage to look at The current behavior (ie. taking substrings before shaping) may break horribly on ligatures and combining characters. It ought to be possible to write additional test cases to probe for this. |
cc @bruvzg |
visible_characters
no longer accounts for words that break over several lines
visible_characters
no longer accounts for words that break over several linesvisible_characters
no longer accounts for words that break over several lines (Complex Text Layouts regression)
I think I should mention this: when showing a word so large it gets out of bounds in Godot 3, it somehow breaks the line for everything to show up. On 4 however, it just gets out of bounds as usual. |
Godot version
Godot v4.0.dev.20211015.official [f113dc9]
System information
Kubuntu 21.04
Issue description
This has been found while porting a project from Godot 3 to 4.
Not sure if a bug or intended, but I haven't seen this change stated anywhere and there's no option to behave the other way.
In Godot 3, increasing the value of RichTextLabel's
visible_characters
starts typing a word that would get out of bounds already in a new line:In Godot 4, however, it starts typing the word, then moves it to a new line:
This seems annoying for someone who got used the first behavior.
Steps to reproduce
Repeat the process on the other version
Minimal reproduction project
This file includes tests on v3 and v4.
The text was updated successfully, but these errors were encountered: