From 116af14649b23ad6bed716dd758a5c124ffcfd89 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Tue, 14 Jul 2015 14:18:21 -0400 Subject: [PATCH] e-comp-wl: Update keyboard and modifier state AFTER we send them to clients Signed-off-by: Chris Michael --- src/bin/e_comp_wl.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 56881df0d..ac6902898 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -863,7 +863,7 @@ _e_comp_wl_cb_key_down(void *event) exit(0); #endif - end = (uint32_t *)cdata->kbd.keys.data + (cdata->kbd.keys.size / sizeof(*k)); + end = (uint32_t *)cdata->kbd.keys.data + cdata->kbd.keys.size; for (k = cdata->kbd.keys.data; k < end; k++) { @@ -879,9 +879,6 @@ _e_comp_wl_cb_key_down(void *event) } *k = keycode; - /* update modifier state */ - e_comp_wl_input_keyboard_state_update(keycode, EINA_TRUE); - if ((ec = e_client_focused_get())) { if (ec->comp_data->surface && (!e_client_action_get()) && (!e_comp->input_key_grabs)) @@ -904,7 +901,8 @@ _e_comp_wl_cb_key_down(void *event) } } - /* e_comp_wl_input_keyboard_modifiers_update(); */ + /* update modifier state */ + e_comp_wl_input_keyboard_state_update(keycode, EINA_TRUE); } static void @@ -922,15 +920,12 @@ _e_comp_wl_cb_key_up(void *event) keycode = (ev->keycode - 8); if (!(cdata = e_comp->wl_comp_data)) return; - end = (uint32_t *)cdata->kbd.keys.data + (cdata->kbd.keys.size / sizeof(*k)); + end = (uint32_t *)cdata->kbd.keys.data + cdata->kbd.keys.size; for (k = cdata->kbd.keys.data; k < end; k++) if (*k == keycode) *k = *--end; cdata->kbd.keys.size = (const char *)end - (const char *)cdata->kbd.keys.data; - /* update modifier state */ - e_comp_wl_input_keyboard_state_update(keycode, EINA_FALSE); - ec = e_client_focused_get(); if ((ec) && (ec->comp_data->surface) && (!e_client_action_get()) && (!e_comp->input_key_grabs)) { @@ -952,7 +947,8 @@ _e_comp_wl_cb_key_up(void *event) } } - /* e_comp_wl_input_keyboard_modifiers_update(); */ + /* update modifier state */ + e_comp_wl_input_keyboard_state_update(keycode, EINA_FALSE); } static void