diff --git a/gtk/gtktext.c b/gtk/gtktext.c index 872abd76f2..78a3d0c4b9 100644 --- a/gtk/gtktext.c +++ b/gtk/gtktext.c @@ -2634,8 +2634,9 @@ gtk_text_click_gesture_pressed (GtkGestureClick *gesture, gtk_widget_get_modifier_mask (widget, GDK_MODIFIER_INTENT_EXTEND_SELECTION)); - if (extend_selection) - gtk_text_reset_im_context (self); + /* Always emit reset when preedit is shown */ + priv->need_im_reset = TRUE; + gtk_text_reset_im_context (self); switch (n_press) { diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index dea5a11f11..4e6ce8d468 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -5201,7 +5201,11 @@ gtk_text_view_click_gesture_pressed (GtkGestureClick *gesture, gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN; if (n_press == 1) - gtk_text_view_reset_im_context (text_view); + { + /* Always emit reset when preedit is shown */ + priv->need_im_reset = TRUE; + gtk_text_view_reset_im_context (text_view); + } if (n_press == 1 && gdk_event_triggers_context_menu (event))