File tree Expand file tree Collapse file tree 2 files changed +16
-4
lines changed Expand file tree Collapse file tree 2 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -1377,8 +1377,14 @@ void LineEdit::_notification(int p_what) {
13771377
13781378 case MainLoop::NOTIFICATION_OS_IME_UPDATE: {
13791379 if (editing) {
1380- ime_text = DisplayServer::get_singleton ()->ime_get_text ();
1381- ime_selection = DisplayServer::get_singleton ()->ime_get_selection ();
1380+ const String &new_ime_text = DisplayServer::get_singleton ()->ime_get_text ();
1381+ const Vector2i &new_ime_selection = DisplayServer::get_singleton ()->ime_get_selection ();
1382+ if (ime_text == new_ime_text && ime_selection == new_ime_selection) {
1383+ break ;
1384+ }
1385+
1386+ ime_text = new_ime_text;
1387+ ime_selection = new_ime_selection;
13821388
13831389 if (!ime_text.is_empty ()) {
13841390 selection_delete ();
Original file line number Diff line number Diff line change @@ -1633,9 +1633,15 @@ void TextEdit::_notification(int p_what) {
16331633
16341634 case MainLoop::NOTIFICATION_OS_IME_UPDATE: {
16351635 if (has_focus ()) {
1636+ const String &new_ime_text = DisplayServer::get_singleton ()->ime_get_text ();
1637+ const Vector2i &new_ime_selection = DisplayServer::get_singleton ()->ime_get_selection ();
1638+ if (ime_text == new_ime_text && ime_selection == new_ime_selection) {
1639+ break ;
1640+ }
1641+
16361642 bool had_ime_text = has_ime_text ();
1637- ime_text = DisplayServer::get_singleton ()-> ime_get_text () ;
1638- ime_selection = DisplayServer::get_singleton ()-> ime_get_selection () ;
1643+ ime_text = new_ime_text ;
1644+ ime_selection = new_ime_selection ;
16391645
16401646 if (!had_ime_text && has_ime_text ()) {
16411647 _cancel_drag_and_drop_text ();
You can’t perform that action at this time.
0 commit comments