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)
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 7e982ed52..010caa959 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)
2448 ec->parent->modal = NULL; 2448 ec->parent->modal = NULL;
2449 } 2449 }
2450 2450
2451 /* FIXME: We should probably test if ec really has keyboard 2451 if ((ec == e_client_focused_get()) && ec->visible) _e_comp_wl_keyboard_leave(ec);
2452 * focus, but this at least catches GTK's silly habit of creating
2453 * a surface, never attaching anything to it, then deleting it.
2454 */
2455 if (ec->visible)_e_comp_wl_keyboard_leave(ec);
2456 2452
2457 wl_signal_emit(&ec->comp_data->destroy_signal, &ec->comp_data->surface); 2453 wl_signal_emit(&ec->comp_data->destroy_signal, &ec->comp_data->surface);
2458 2454