processmgr: add E_COMP_OBJECT_HOOK_OBJECT_SETUP hook callback function 77/232677/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 7 May 2020 06:13:36 +0000 (15:13 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Thu, 7 May 2020 06:13:40 +0000 (15:13 +0900)
We use E_COMP_OBJECT_HOOK_OBJECT_SETUP hook instead of E_EVENT_CLIENT_ADD event
to send launch_real,done signal.

Change-Id: I3b3dc26465c1d5c70d9e9f0668aafdf73508c8b9

src/e_mod_processmgr.c

index 5cd045f..d96b0c8 100644 (file)
@@ -7,6 +7,7 @@
 static Eina_List *hooks_ec = NULL;
 static Eina_List *_e_processmgr_ec_handlers = NULL;
 static Eina_List *_e_processmgr_wl_hooks = NULL;
+static Eina_List *_e_processmgr_comp_hooks = NULL;
 
 static Eldbus_Connection *_dbus_conn = NULL;
 static Eldbus_Service_Interface *_dbus_iface = NULL;
@@ -318,11 +319,6 @@ _e_processmgr_cb_client_add(void *data EINA_UNUSED, int type EINA_UNUSED, void *
    if (!ev) return ECORE_CALLBACK_PASS_ON;
 
    ec = ev->ec;
-   e_comp_object_signal_callback_add(ec->frame,
-                                     "e,action,launch_real,done",
-                                     "e",
-                                     _e_processmgr_cb_launch_done,
-                                     ec);
 
    return ECORE_CALLBACK_PASS_ON;
 }
@@ -363,6 +359,18 @@ _e_processmgr_cb_client_reuse(void *data EINA_UNUSED, E_Client *ec)
 }
 
 static Eina_Bool
+_e_processmgr_cb_comp_obj_setup(void *data, E_Client *ec)
+{
+   e_comp_object_signal_callback_add(ec->frame,
+                                     "e,action,launch_real,done",
+                                     "e",
+                                     _e_processmgr_cb_launch_done,
+                                     ec);
+
+   return EINA_TRUE;
+}
+
+static Eina_Bool
 _dbus_init(void)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(_dbus_conn, EINA_FALSE);
@@ -434,6 +442,7 @@ e_mod_processmgr_init(void)
    E_LIST_HANDLER_APPEND(_e_processmgr_ec_handlers, E_EVENT_CLIENT_REMOVE, _e_processmgr_cb_client_remove, NULL);
 
    E_COMP_WL_HOOK_APPEND(_e_processmgr_wl_hooks, E_COMP_WL_HOOK_CLIENT_REUSE, _e_processmgr_cb_client_reuse, NULL);
+   E_COMP_COMP_HOOK_APPEND(_e_processmgr_comp_hooks, E_COMP_OBJECT_HOOK_OBJECT_SETUP, _e_processmgr_cb_comp_obj_setup, NULL);
 
    return EINA_TRUE;
 
@@ -467,6 +476,7 @@ e_mod_processmgr_shutdown(void)
    _dbus_iface = NULL;
    _dbus_conn = NULL;
 
+   E_FREE_LIST(_e_processmgr_comp_hooks, e_comp_object_hook_del);
    E_FREE_LIST(_e_processmgr_wl_hooks, e_comp_wl_hook_del);
    E_FREE_LIST(_e_processmgr_ec_handlers, ecore_event_handler_del);
    EINA_LIST_FREE(hooks_ec, hook)