Update String property field only when text has changed

Avoids resetting the cursor position when the inspector updates while
editing a string property.

Fixes #42488

(cherry picked from commit c064378f95)
This commit is contained in:
PouleyKetchoupp 2021-01-06 11:31:44 -07:00 committed by Rémi Verschelde
parent db3e18b9c6
commit dad3f27e9f
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -70,7 +70,9 @@ void EditorPropertyText::_text_changed(const String &p_string) {
void EditorPropertyText::update_property() {
String s = get_edited_object()->get(get_edited_property());
updating = true;
text->set_text(s);
if (text->get_text() != s) {
text->set_text(s);
}
text->set_editable(!is_read_only());
updating = false;
}
@ -125,9 +127,11 @@ void EditorPropertyMultilineText::_open_big_text() {
void EditorPropertyMultilineText::update_property() {
String t = get_edited_object()->get(get_edited_property());
text->set_text(t);
if (big_text && big_text->is_visible_in_tree()) {
big_text->set_text(t);
if (text->get_text() != t) {
text->set_text(t);
if (big_text && big_text->is_visible_in_tree()) {
big_text->set_text(t);
}
}
}