e_process: modified code for handling the E_PROCESS_ACT_NO_VISIBLE_WINDOWS action. 59/98159/1 accepted/tizen/3.0/common/20161117.090639 accepted/tizen/3.0/ivi/20161117.022118 accepted/tizen/3.0/mobile/20161117.022024 accepted/tizen/3.0/tv/20161117.022044 accepted/tizen/3.0/wearable/20161117.022102 accepted/tizen/common/20161116.134546 accepted/tizen/ivi/20161117.010550 accepted/tizen/mobile/20161117.010456 accepted/tizen/tv/20161117.010513 accepted/tizen/wearable/20161117.010529 submit/tizen/20161116.114430 submit/tizen_3.0/20161116.114529
authorDoyoun Kang <doyoun.kang@samsung.com>
Wed, 16 Nov 2016 09:07:46 +0000 (18:07 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Wed, 16 Nov 2016 09:07:46 +0000 (18:07 +0900)
we changed code to use E_EVENT_CLIENT_VISIBILITY_CHANGE event for handling this action

Change-Id: I48976de13cb42ed45584d4f8fa1574482a32fe30

src/bin/e_process.c

index 0348712a87e704df6b22f8556104915c7e176b39..9ffed25304a63372189d554ba01bd4532151fea3 100644 (file)
@@ -9,7 +9,6 @@ static void       _e_process_client_info_del(E_Client *ec);
 
 static Eina_Bool  _e_process_cb_client_add(void *data EINA_UNUSED, int type EINA_UNUSED, void *event);
 static Eina_Bool  _e_process_cb_client_remove(void *data EINA_UNUSED, int type EINA_UNUSED, void *event);
-static Eina_Bool  _e_process_cb_client_hide(void *data EINA_UNUSED, int type EINA_UNUSED, void *event);
 static Eina_Bool  _e_process_cb_client_iconify(void *data EINA_UNUSED, int type EINA_UNUSED, void *event);
 static Eina_Bool  _e_process_cb_client_uniconify(void *data EINA_UNUSED, int type EINA_UNUSED, void *event);
 static Eina_Bool  _e_process_cb_client_visibility_change(void *data EINA_UNUSED, int type EINA_UNUSED, void *event);
@@ -183,31 +182,6 @@ _e_process_cb_client_remove(void *data EINA_UNUSED, int type EINA_UNUSED, void *
    return ECORE_CALLBACK_PASS_ON;
 }
 
-static Eina_Bool
-_e_process_cb_client_hide(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
-{
-   E_Event_Client *ev;
-   E_Client *ec;
-   Eina_Bool visible;
-   pid_t pid;
-
-   ev = event;
-   if (!ev) return ECORE_CALLBACK_PASS_ON;
-
-   ec = ev->ec;
-   if (!ec) return ECORE_CALLBACK_PASS_ON;
-
-   pid = ec->netwm.pid;
-
-   if (_e_process_windows_visible_get(pid, &visible))
-     {
-        if (!visible)
-          _e_process_windows_act_no_visible_update(pid);
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
 static Eina_Bool
 _e_process_cb_client_iconify(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
 {
@@ -256,6 +230,7 @@ _e_process_cb_client_visibility_change(void *data EINA_UNUSED, int type EINA_UNU
    E_Event_Client *ev;
    E_Client *ec;
    pid_t pid;
+   Eina_Bool visible;
 
    ev = event;
    if (!ev) return ECORE_CALLBACK_PASS_ON;
@@ -266,6 +241,17 @@ _e_process_cb_client_visibility_change(void *data EINA_UNUSED, int type EINA_UNU
    pid = ec->netwm.pid;
    if (ec->visibility.obscured == E_VISIBILITY_UNOBSCURED)
      _e_process_thaw(pid);
+   else if (ec->visibility.obscured == E_VISIBILITY_FULLY_OBSCURED)
+     {
+        if (!ec->visible)
+          {
+             if (_e_process_windows_visible_get(pid, &visible))
+               {
+                  if (!visible)
+                    _e_process_windows_act_no_visible_update(pid);
+               }
+          }
+     }
 
    return ECORE_CALLBACK_PASS_ON;
 }
@@ -573,7 +559,6 @@ e_process_init(void)
 
    E_LIST_HANDLER_APPEND(_e_process_ec_handlers, E_EVENT_CLIENT_ADD, _e_process_cb_client_add, NULL);
    E_LIST_HANDLER_APPEND(_e_process_ec_handlers, E_EVENT_CLIENT_REMOVE, _e_process_cb_client_remove, NULL);
-   E_LIST_HANDLER_APPEND(_e_process_ec_handlers, E_EVENT_CLIENT_HIDE, _e_process_cb_client_hide, NULL);
    E_LIST_HANDLER_APPEND(_e_process_ec_handlers, E_EVENT_CLIENT_ICONIFY, _e_process_cb_client_iconify, NULL);
    E_LIST_HANDLER_APPEND(_e_process_ec_handlers, E_EVENT_CLIENT_UNICONIFY, _e_process_cb_client_uniconify, NULL);
    E_LIST_HANDLER_APPEND(_e_process_ec_handlers, E_EVENT_CLIENT_VISIBILITY_CHANGE, _e_process_cb_client_visibility_change, NULL);