bdilly pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e0170c2b0dbadb98d8e3c9f831b88764f1f8aa26
commit e0170c2b0dbadb98d8e3c9f831b88764f1f8aa26 Author: Bruno Dilly <[email protected]> Date: Thu Mar 23 19:00:44 2017 -0300 evas_events: look for seats on hash instead of input devices Summary: Otherwise it won't ever find the modifier masks. Fixes T5146 @fix Reviewers: iscaro, Jaehyun_Cho Subscribers: cedric, jpeg Maniphest Tasks: T5146 Differential Revision: https://phab.enlightenment.org/D4738 --- src/lib/evas/canvas/evas_events.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c index 82c6dd7..cfaee6e 100644 --- a/src/lib/evas/canvas/evas_events.c +++ b/src/lib/evas/canvas/evas_events.c @@ -3110,9 +3110,12 @@ _canvas_event_feed_key_down_internal(Evas_Public_Data *e, Efl_Input_Key_Data *ev Eina_List *l; Evas_Key_Grab *g; Evas_Modifier_Mask *seat_mask, modifier_mask; + Efl_Input_Device *seat = NULL; e->walking_grabs++; - seat_mask = eina_hash_find(e->modifiers.masks, &ev->device); + if (ev->device) + seat = efl_input_device_seat_get(ev->device); + seat_mask = eina_hash_find(e->modifiers.masks, &seat); modifier_mask = seat_mask ? *seat_mask : 0; EINA_LIST_FOREACH(e->grabs, l, g) { @@ -3200,9 +3203,12 @@ _canvas_event_feed_key_up_internal(Evas_Public_Data *e, Efl_Input_Key_Data *ev) Eina_List *l; Evas_Key_Grab *g; Evas_Modifier_Mask *seat_mask, modifier_mask; + Efl_Input_Device *seat = NULL; e->walking_grabs++; - seat_mask = eina_hash_find(e->modifiers.masks, &ev->device); + if (ev->device) + seat = efl_input_device_seat_get(ev->device); + seat_mask = eina_hash_find(e->modifiers.masks, &seat); modifier_mask = seat_mask ? *seat_mask : 0; EINA_LIST_FOREACH(e->grabs, l, g) { --
