Sfoglia il codice sorgente

Merge pull request #86460 from reach-satori/double_textchanged_emit

Fix double `text_changed` signal when overwriting selection in LineEdit
Rémi Verschelde 1 anno fa
parent
commit
5042f543ab
1 ha cambiato i file con 6 aggiunte e 1 eliminazioni
  1. 6 1
      scene/gui/line_edit.cpp

+ 6 - 1
scene/gui/line_edit.cpp

@@ -624,7 +624,12 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
 			int prev_len = text.length();
 			insert_text_at_caret(ucodestr);
 			if (text.length() != prev_len) {
-				_text_changed();
+				if (!text_changed_dirty) {
+					if (is_inside_tree()) {
+						callable_mp(this, &LineEdit::_text_changed).call_deferred();
+					}
+					text_changed_dirty = true;
+				}
 			}
 			accept_event();
 			return;