Merge pull request #44870 from alexpech12/fix-rich-text-label-set-visible-characters
Keep RichTextLabel visible character properties in sync
This commit is contained in:
commit
64ba83a096
2 changed files with 11 additions and 0 deletions
|
@ -455,6 +455,7 @@
|
|||
</member>
|
||||
<member name="visible_characters" type="int" setter="set_visible_characters" getter="get_visible_characters" default="-1">
|
||||
The restricted number of characters to display in the label. If [code]-1[/code], all characters will be displayed.
|
||||
[b]Note:[/b] Setting this property updates [member percent_visible] based on current [method get_total_character_count].
|
||||
</member>
|
||||
</members>
|
||||
<signals>
|
||||
|
|
|
@ -3677,6 +3677,7 @@ void RichTextLabel::set_percent_visible(float p_percent) {
|
|||
}
|
||||
main->first_invalid_line = 0; //invalidate ALL
|
||||
_validate_line_caches(main);
|
||||
_change_notify("visible_characters");
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
@ -3890,6 +3891,15 @@ void RichTextLabel::_bind_methods() {
|
|||
|
||||
void RichTextLabel::set_visible_characters(int p_visible) {
|
||||
visible_characters = p_visible;
|
||||
if (p_visible == -1) {
|
||||
percent_visible = 1;
|
||||
} else {
|
||||
int total_char_count = get_total_character_count();
|
||||
if (total_char_count > 0) {
|
||||
percent_visible = (float)p_visible / (float)total_char_count;
|
||||
}
|
||||
}
|
||||
_change_notify("percent_visible");
|
||||
update();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue