[gtk/wip/carlosg/imwayland-for-master: 6/12] imwayland: Don't reset serial while text-input is alive



commit 12ac9f351e9d9a7f698d757d3b5f4c519c4f549d
Author: Dorota Czaplejewicz <dorota czaplejewicz puri sm>
Date:   Fri Sep 14 20:31:55 2018 +0000

    imwayland: Don't reset serial while text-input is alive
    
    The serial number is a persistent property of the text-input object.

 gtk/gtkimcontextwayland.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)
---
diff --git a/gtk/gtkimcontextwayland.c b/gtk/gtkimcontextwayland.c
index ee9902fa21..50add11bfd 100644
--- a/gtk/gtkimcontextwayland.c
+++ b/gtk/gtkimcontextwayland.c
@@ -41,6 +41,8 @@ struct _GtkIMContextWaylandGlobal
   struct zwp_text_input_v3 *text_input;
 
   GtkIMContext *current;
+
+  guint serial;
 };
 
 struct _GtkIMContextWaylandClass
@@ -76,8 +78,6 @@ struct _GtkIMContextWayland
 
   enum zwp_text_input_v3_change_cause surrounding_change;
 
-  guint serial;
-
   struct surrounding_delete pending_surrounding_delete;
 
   struct preedit current_preedit;
@@ -244,7 +244,6 @@ text_input_done (void                     *data,
                  struct zwp_text_input_v3 *text_input,
                  uint32_t                  serial)
 {
-  GtkIMContextWayland *context;
   GtkIMContextWaylandGlobal *global = data;
   gboolean result;
   gboolean valid;
@@ -252,9 +251,7 @@ text_input_done (void                     *data,
   if (!global->current)
     return;
 
-  context = GTK_IM_CONTEXT_WAYLAND (global->current);
-
-  valid = serial == context->serial;
+  valid = serial == global->serial;
   text_input_delete_surrounding_text_apply(global, valid);
   text_input_commit_apply(global, valid);
   g_signal_emit_by_name (global->current, "retrieve-surrounding", &result);
@@ -289,6 +286,7 @@ registry_handle_global (void               *data,
       global->text_input =
         zwp_text_input_manager_v3_get_text_input (global->text_input_manager,
                                           gdk_wayland_seat_get_wl_seat (seat));
+      global->serial = 0;
       zwp_text_input_v3_add_listener (global->text_input,
                                       &text_input_listener, global);
     }
@@ -452,7 +450,7 @@ commit_state (GtkIMContextWayland *context)
 {
   if (global->current != GTK_IM_CONTEXT (context))
     return;
-  context->serial++;
+  global->serial++;
   zwp_text_input_v3_commit (global->text_input);
   context->surrounding_change = ZWP_TEXT_INPUT_V3_CHANGE_CAUSE_INPUT_METHOD;
 }


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