File tree 2 files changed +16
-4
lines changed
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) {
1377
1377
1378
1378
case MainLoop::NOTIFICATION_OS_IME_UPDATE: {
1379
1379
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;
1382
1388
1383
1389
if (!ime_text.is_empty ()) {
1384
1390
selection_delete ();
Original file line number Diff line number Diff line change @@ -1633,9 +1633,15 @@ void TextEdit::_notification(int p_what) {
1633
1633
1634
1634
case MainLoop::NOTIFICATION_OS_IME_UPDATE: {
1635
1635
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
+
1636
1642
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 ;
1639
1645
1640
1646
if (!had_ime_text && has_ime_text ()) {
1641
1647
_cancel_drag_and_drop_text ();
You can’t perform that action at this time.
0 commit comments