discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=ecf22d6787fd01d37c026c743d495511a1804fce

commit ecf22d6787fd01d37c026c743d495511a1804fce
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Tue May 3 20:25:36 2016 -0400

    hide evry on focus-out
    
    handles case where focus is lost due to compositor grab
---
 src/modules/everything/evry.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c
index 87f1d9b..d5584a3 100644
--- a/src/modules/everything/evry.c
+++ b/src/modules/everything/evry.c
@@ -151,6 +151,19 @@ _evry_cb_item_changed(EINA_UNUSED void *data, EINA_UNUSED 
int type, void *event)
    return ECORE_CALLBACK_PASS_ON;
 }
 
+static void
+_evry_focus_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, 
void *event_info EINA_UNUSED)
+{
+   Evry_Window *win = data;
+   E_Client *ec;
+
+   if (!win->grab) return;
+
+   ec = e_win_client_get(win->ewin);
+   if (ec && (!e_object_is_del(E_OBJECT(ec))))
+     evry_hide(win, 0);
+}
+
 Evry_Window *
 evry_show(E_Zone *zone, E_Zone_Edge edge, const char *params, Eina_Bool popup)
 {
@@ -197,6 +210,7 @@ evry_show(E_Zone *zone, E_Zone_Edge edge, const char 
*params, Eina_Bool popup)
           }
 
         win->grab = 1;
+        evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_FOCUS_OUT, 
_evry_focus_out, win);
      }
 
    evry_history_load();

-- 


Reply via email to