Fix stuck modifiers on client exit

Summary:
We still need to remove the active keys when focus_out happens, even
if the pixmap is already gone.  If we don't and a modifier was held
down during exit then the xkb state will have that modifier stuck
forever.

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2110
This commit is contained in:
Derek Foreman 2015-03-06 13:08:24 -05:00 committed by Chris Michael
parent 08b9194c12
commit 6e4214c8ad
1 changed files with 6 additions and 5 deletions

View File

@ -467,11 +467,6 @@ _e_comp_wl_evas_cb_focus_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *ob
Eina_List *l;
if (!(ec = data)) return;
if (e_object_is_del(E_OBJECT(ec))) return;
if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) return;
/* lower client priority */
_e_comp_wl_client_priority_normal(ec);
cdata = ec->comp->wl_comp_data;
@ -479,6 +474,12 @@ _e_comp_wl_evas_cb_focus_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *ob
wl_array_for_each(k, &cdata->kbd.keys)
e_comp_wl_input_keyboard_state_update(cdata, *k, EINA_FALSE);
if (e_object_is_del(E_OBJECT(ec))) return;
if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) return;
/* lower client priority */
_e_comp_wl_client_priority_normal(ec);
if (!ec->comp_data->surface) return;
/* send keyboard_leave to all keyboard resources */