[gtk/wip/carlosg/imwayland-for-master: 2/12] imwayland: clear preedit on focus out



commit c49b29fa53bb1a8a4530cf868d34d1302acdf2eb
Author: Dorota Czaplejewicz <dorota czaplejewicz puri sm>
Date:   Thu Aug 23 12:32:11 2018 +0200

    imwayland: clear preedit on focus out

 gtk/gtkimcontextwayland.c | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)
---
diff --git a/gtk/gtkimcontextwayland.c b/gtk/gtkimcontextwayland.c
index 76b19f8c51..d3286bf7a5 100644
--- a/gtk/gtkimcontextwayland.c
+++ b/gtk/gtkimcontextwayland.c
@@ -119,18 +119,7 @@ static void
 text_input_leave (void                     *data,
                   struct zwp_text_input_v3 *text_input,
                   struct wl_surface        *surface)
-{
-  /*
-  GtkIMContextWayland *context;
-
-  if (!global->current)
-    return;
-
-  context = GTK_IM_CONTEXT_WAYLAND (global->current);
-  TODO: does this clear text input or modify text?
-  reset_preedit (context);
-  */
-}
+{}
 
 static void
 text_input_preedit (void                     *data,
@@ -153,7 +142,6 @@ text_input_preedit (void                     *data,
   context->pending_preedit.cursor_end = cursor_end;
 }
 
-
 static void
 text_input_preedit_apply (GtkIMContextWaylandGlobal *global)
 {
@@ -645,6 +633,11 @@ gtk_im_context_wayland_focus_out (GtkIMContext *context)
 
   zwp_text_input_v3_disable (global->text_input);
   commit_state (context_wayland);
+
+  /* after disable, incoming state changes won't take effect anyway */
+  text_input_preedit (global, global->text_input, "", 0, 0);
+  text_input_preedit_apply (global);
+
   global->current = NULL;
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]