Add new hooks and signal to notify finishing some user request. 98/209798/2
authoranubhavbehera <anubhav.b@samsung.com>
Thu, 11 Jul 2019 04:56:46 +0000 (10:26 +0530)
committeranubhavbehera <anubhav.b@samsung.com>
Thu, 11 Jul 2019 06:30:44 +0000 (12:00 +0530)
Some modules needed to know when Activate, Raise and Map requests are completed.
So added below hooks:
- E_CLIENT_HOOK_ACTIVATE_DONE
- E_POLICY_HOOK_CLIENT_RAISE_REQ_DONE
- e_comp_object_signal_emit(ec->frame, e,action,map,done, e)

Change-Id: I68ed431921093211a3515d25db93d650c2c51db3
Signed-off-by: anubhavbehera <anubhav.b@samsung.com>
src/bin/e_client.c
src/bin/e_client.h
src/bin/e_comp_wl_shell.c
src/bin/e_policy.c
src/bin/e_policy.h
src/bin/e_policy_wl.c

index ac7f1db414bf6414b932d76ec5146bf485105e88..4be1275d5e4c5d1f15c43a5d6c27f36107a6f117 100644 (file)
@@ -105,6 +105,7 @@ static Eina_Inlist *_e_client_hooks[] =
    [E_CLIENT_HOOK_WINDOW_ROLE_CHANGE] = NULL,
    [E_CLIENT_HOOK_CAL_VISIBILITY_DISPLAY_OFF] = NULL,
    [E_CLIENT_HOOK_TRANSFORM_CHANGE] = NULL,
+   [E_CLIENT_HOOK_ACTIVATE_DONE] = NULL,
 };
 
 static Eina_Inlist *_e_client_intercept_hooks[] =
@@ -5389,6 +5390,8 @@ e_client_activate(E_Client *ec, Eina_Bool just_do_it)
           }
      }
 
+   _e_client_hook_call(E_CLIENT_HOOK_ACTIVATE_DONE, ec);
+
    TRACE_DS_END();
 }
 
index 383e15cb493071f1b2be1bc982caa7c1db73d5ff..27e88a1b27a5e9c9cfa55d6a2ae3ad299cb8ff19 100644 (file)
@@ -252,6 +252,7 @@ typedef enum _E_Client_Hook_Point
    E_CLIENT_HOOK_WINDOW_ROLE_CHANGE,
    E_CLIENT_HOOK_CAL_VISIBILITY_DISPLAY_OFF,
    E_CLIENT_HOOK_TRANSFORM_CHANGE,
+   E_CLIENT_HOOK_ACTIVATE_DONE,
    E_CLIENT_HOOK_LAST,
 } E_Client_Hook_Point;
 
index 4704eb48f6df0f5d39037deec24c800f4e6c140e..4455d1ea002f55764a2a659e18b786eec9b22b50 100644 (file)
@@ -788,6 +788,8 @@ _e_shell_client_map_common_post(E_Client *ec)
    ec->launching = EINA_FALSE;
 
    EC_CHANGED(ec);
+
+   e_comp_object_signal_emit(ec->frame, "e,action,map,done", "e");
 }
 
 static void
index 9662416b52ab61e13aec494905a299bd8d64a9cf..a034f6279ce6e40a880d044643af57675e1af2d3 100644 (file)
@@ -43,6 +43,7 @@ static Eina_Inlist *_e_policy_hooks[] =
    [E_POLICY_HOOK_CLIENT_ICONIFY_REQ] = NULL,
    [E_POLICY_HOOK_CLIENT_UNICONIFY_REQ] = NULL,
    [E_POLICY_HOOK_CLIENT_NOTILAYER_SET] = NULL,
+   [E_POLICY_HOOK_CLIENT_RAISE_REQ_DONE] = NULL,
 };
 
 static E_Policy_Client *_e_policy_client_add(E_Client *ec);
index 2da31a88d3cb97c8fb4722e9bc07334ed3167130..23d0cabd12cc3e2878dfec231c19470d8c84977b 100644 (file)
@@ -42,6 +42,7 @@ typedef enum _E_Policy_Hook_Point
    E_POLICY_HOOK_CLIENT_ICONIFY_REQ,
    E_POLICY_HOOK_CLIENT_UNICONIFY_REQ,
    E_POLICY_HOOK_CLIENT_NOTILAYER_SET,
+   E_POLICY_HOOK_CLIENT_RAISE_REQ_DONE,
    E_POLICY_HOOK_LAST
 } E_Policy_Hook_Point;
 
index e17e69ebb88bde4690fccc094808c54ad5f45f6c..1a7c702233c96e67bfb0ea57f22f17770831bcdc 100644 (file)
@@ -1725,6 +1725,8 @@ _tzpol_iface_cb_raise(struct wl_client *client EINA_UNUSED, struct wl_resource *
         ELOGF("TZPOL", "POST_RAISE_LOWER SET... raise:%d, lower:%d", ec, EINA_TRUE, EINA_FALSE);
         e_client_post_raise_lower_set(ec, EINA_TRUE, EINA_FALSE);
      }
+
+   e_policy_hook_call(E_POLICY_HOOK_CLIENT_RAISE_REQ_DONE, ec);
 }
 
 static void