From e115cbc906af34def94b3fd72130cfd6aa97a8ee Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 22 Jan 2014 22:11:47 -0500 Subject: [PATCH] reset focus to last focused client upon closing an autoclose object --- src/bin/e_comp_object.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 42cea7d34..b2d76e7fb 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3369,8 +3369,18 @@ _e_comp_object_autoclose_show(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_ static void _e_comp_object_autoclose_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) { + E_Client *ec; + Eina_List *l; + evas_object_event_callback_del(obj, EVAS_CALLBACK_SHOW, _e_comp_object_autoclose_show); _e_comp_object_autoclose_cleanup(data, 1); + if (e_client_focused_get()) return; + EINA_LIST_FOREACH(e_client_focus_stack_get(), l, ec) + if (ec->desk && ec->desk->visible) + { + evas_object_focus_set(ec->frame, 1); + break; + } } EAPI void