summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2016-08-26 12:05:58 -0500
committerDerek Foreman <derekf@osg.samsung.com>2016-08-26 12:05:58 -0500
commitc5282454698a947e00428642f0bb2ba8348b366b (patch)
tree8c4f957b6efd431713075ec826b95aa106b25ebe
parent3a561bb00aff44644916bc100aaa341dfdcda1e0 (diff)
downloadenlightenment-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.c6
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);