diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2016-08-26 12:05:58 -0500 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2016-08-26 12:05:58 -0500 |
commit | c5282454698a947e00428642f0bb2ba8348b366b (patch) | |
tree | 8c4f957b6efd431713075ec826b95aa106b25ebe | |
parent | 3a561bb00aff44644916bc100aaa341dfdcda1e0 (diff) | |
download | enlightenment-c5282454698a947e00428642f0bb2ba8348b366b.tar.gz |
Don't send keyboard leave events to unfocused clients
This fixes a problem when focus moves between two xwayland clients.
My testing of gtk applications shows no regressions, bug if xdg_shell
popups start behaving oddly again, look here first.
-rw-r--r-- | src/bin/e_comp_wl.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 7e982ed527..010caa959c 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2448,11 +2448,7 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec) ec->parent->modal = NULL; } - /* FIXME: We should probably test if ec really has keyboard - * focus, but this at least catches GTK's silly habit of creating - * a surface, never attaching anything to it, then deleting it. - */ - if (ec->visible)_e_comp_wl_keyboard_leave(ec); + if ((ec == e_client_focused_get()) && ec->visible) _e_comp_wl_keyboard_leave(ec); wl_signal_emit(&ec->comp_data->destroy_signal, &ec->comp_data->surface); |