diff options
author | Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> | 2018-09-14 20:31:55 +0000 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-12-18 20:27:12 +0100 |
commit | 12ac9f351e9d9a7f698d757d3b5f4c519c4f549d (patch) | |
tree | 0fa013b890342de88de1808c50571e76050476b9 /gtk/gtkimcontextwayland.c | |
parent | c4b4e90f9841923b78354afed1b298d6a26c9135 (diff) | |
download | gtk+-12ac9f351e9d9a7f698d757d3b5f4c519c4f549d.tar.gz |
imwayland: Don't reset serial while text-input is alive
The serial number is a persistent property of the text-input object.
Diffstat (limited to 'gtk/gtkimcontextwayland.c')
-rw-r--r-- | gtk/gtkimcontextwayland.c | 12 |
1 files 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; } |