devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=6e4214c8adaa2ae7bc0a864295d42c068ca6a59c

commit 6e4214c8adaa2ae7bc0a864295d42c068ca6a59c
Author: Derek Foreman <der...@osg.samsung.com>
Date:   Fri Mar 6 13:08:24 2015 -0500

    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
---
 src/bin/e_comp_wl.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index ad3a2ee..05f4e14 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -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 */

-- 


Reply via email to