1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-23 15:16:17 +00:00

Fix double text_changed signal when overwriting selection in LineEdit

The part of gui_input that handles unicode wasn't checking
text_changed_dirty before emitting the signal, unlike the rest of the text editing functions.

Fixes #86451

(cherry picked from commit cab48493d8)
This commit is contained in:
Mateus Reis
2023-12-22 23:42:24 +02:00
committed by Rémi Verschelde
parent d216ac7a2c
commit e4181c6d48

View File

@@ -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;