diff --git a/gtk/gtktext.c b/gtk/gtktext.c index 0d54525daa..36dedc0758 100644 --- a/gtk/gtktext.c +++ b/gtk/gtktext.c @@ -2518,8 +2518,9 @@ gtk_text_multipress_gesture_pressed (GtkGestureMultiPress *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 083d181e02..8e50f05aaa 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -5103,7 +5103,11 @@ gtk_text_view_multipress_gesture_pressed (GtkGestureMultiPress *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))