Răsfoiți Sursa

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 c064378f954346c0e37252cf785878fe5c7bb633)
PouleyKetchoupp 4 ani în urmă
părinte
comite
dad3f27e9f
1 a modificat fișierele cu 8 adăugiri și 4 ștergeri
  1. 8 4
      editor/editor_properties.cpp

+ 8 - 4
editor/editor_properties.cpp

@@ -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);
+		}
 	}
 }