text: Fix serial handling
Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
diff --git a/clients/weston-simple-im.c b/clients/weston-simple-im.c
index 9d31e3b..a532003 100644
--- a/clients/weston-simple-im.c
+++ b/clients/weston-simple-im.c
@@ -112,16 +112,13 @@
static void
handle_reset(void *data,
- struct input_method_context *context,
- uint32_t serial)
+ struct input_method_context *context)
{
struct simple_im *keyboard = data;
fprintf(stderr, "Reset pre-edit buffer\n");
keyboard->compose_state = state_normal;
-
- keyboard->serial = serial;
}
static void
@@ -141,9 +138,13 @@
}
static void
-handle_commit(void *data,
- struct input_method_context *context)
+handle_commit_state(void *data,
+ struct input_method_context *context,
+ uint32_t serial)
{
+ struct simple_im *keyboard = data;
+
+ keyboard->serial = serial;
}
static void
@@ -158,7 +159,7 @@
handle_reset,
handle_content_type,
handle_invoke_action,
- handle_commit,
+ handle_commit_state,
handle_preferred_language
};
@@ -285,8 +286,7 @@
static void
input_method_activate(void *data,
struct input_method *input_method,
- struct input_method_context *context,
- uint32_t serial)
+ struct input_method_context *context)
{
struct simple_im *keyboard = data;
@@ -295,7 +295,7 @@
keyboard->compose_state = state_normal;
- keyboard->serial = serial;
+ keyboard->serial = 0;
keyboard->context = context;
input_method_context_add_listener(context,
@@ -396,7 +396,7 @@
for (i = 0; i < sizeof(ignore_keys_on_compose) / sizeof(ignore_keys_on_compose[0]); i++) {
if (sym == ignore_keys_on_compose[i]) {
- input_method_context_key(context, serial, time, key, state);
+ input_method_context_key(context, keyboard->serial, time, key, state);
return;
}
}
@@ -412,13 +412,11 @@
if (cs) {
if (cs->keys[i + 1] == 0) {
input_method_context_preedit_cursor(keyboard->context,
- keyboard->serial,
0);
input_method_context_preedit_string(keyboard->context,
keyboard->serial,
"", "");
input_method_context_cursor_position(keyboard->context,
- keyboard->serial,
0, 0);
input_method_context_commit_string(keyboard->context,
keyboard->serial,
@@ -432,7 +430,6 @@
}
input_method_context_preedit_cursor(keyboard->context,
- keyboard->serial,
strlen(text));
input_method_context_preedit_string(keyboard->context,
keyboard->serial,
@@ -446,13 +443,11 @@
idx += xkb_keysym_to_utf8(keyboard->compose_seq.keys[j], text + idx, sizeof(text) - idx);
}
input_method_context_preedit_cursor(keyboard->context,
- keyboard->serial,
0);
input_method_context_preedit_string(keyboard->context,
keyboard->serial,
"", "");
input_method_context_cursor_position(keyboard->context,
- keyboard->serial,
0, 0);
input_method_context_commit_string(keyboard->context,
keyboard->serial,
@@ -471,7 +466,6 @@
return;
input_method_context_cursor_position(keyboard->context,
- keyboard->serial,
0, 0);
input_method_context_commit_string(keyboard->context,
keyboard->serial,