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
This commit is contained in:
PouleyKetchoupp 2021-01-06 11:31:44 -07:00
parent f62f64193a
commit c064378f95

View file

@ -77,7 +77,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;
}
@ -133,9 +135,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);
}
}
}