From 4bf4fb69edc9a06ef18891260a98c31cc7f42e34 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 20 Feb 2014 11:40:30 -0500 Subject: [PATCH] check focus reset after comp input ungrab --- src/bin/e_comp.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 66c286fe0..a6b1d13d1 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -1748,6 +1748,8 @@ EAPI void e_comp_ungrab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd) { Ecore_Window mwin = 0, kwin = 0; + Eina_List *l; + E_Client *ec; mouse = !!mouse; kbd = !!kbd; @@ -1763,6 +1765,14 @@ e_comp_ungrab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd) e_grabinput_release(mwin, kwin); evas_event_feed_mouse_out(c->evas, 0, NULL); evas_event_feed_mouse_in(c->evas, 0, NULL); + if (e_client_focused_get()) return; + EINA_LIST_FOREACH(e_client_focus_stack_get(), l, ec) + if (ec->desk && ec->desk->visible && (!ec->iconic)) + { + if (ec->comp->input_key_grabs || ec->comp->input_mouse_grabs) break; + evas_object_focus_set(ec->frame, 1); + break; + } } EAPI void