diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-01-03 15:47:03 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-01-03 15:47:03 +0100 |
commit | 5042f543ab2d2feeac219eedb60f7c5e2046be31 (patch) | |
tree | ea484ed92b6e540340be93b26a0ffaa717f61d76 | |
parent | 27a9119b8a17786ad00b53bf0c662ee9aed81524 (diff) | |
parent | cab48493d848c93ae8fa3b5843a4a24d782a1189 (diff) | |
download | redot-engine-5042f543ab2d2feeac219eedb60f7c5e2046be31.tar.gz |
Merge pull request #86460 from reach-satori/double_textchanged_emit
Fix double `text_changed` signal when overwriting selection in LineEdit
-rw-r--r-- | scene/gui/line_edit.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 5cca09bcf6..1efe11a777 100644 --- a/scene/gui/line_edit.cpp +++ b/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; |