summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDorota Czaplejewicz <dorota.czaplejewicz@puri.sm>2018-09-14 20:31:55 +0000
committerCarlos Garnacho <carlosg@gnome.org>2018-12-18 20:27:12 +0100
commit12ac9f351e9d9a7f698d757d3b5f4c519c4f549d (patch)
tree0fa013b890342de88de1808c50571e76050476b9
parentc4b4e90f9841923b78354afed1b298d6a26c9135 (diff)
downloadgtk+-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.
-rw-r--r--gtk/gtkimcontextwayland.c12
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;
}