derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c5282454698a947e00428642f0bb2ba8348b366b
commit c5282454698a947e00428642f0bb2ba8348b366b Author: Derek Foreman <der...@osg.samsung.com> Date: Fri Aug 26 12:05:58 2016 -0500 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. --- src/bin/e_comp_wl.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 7e982ed..010caa9 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); --