static Eina_List *hooks_ec = NULL;
static Eina_List *_e_processmgr_ec_handlers = NULL;
+static Eina_List *_e_processmgr_wl_hooks = NULL;
+
Eldbus_Connection *_e_processmgr_conn;
Eldbus_Service_Interface *_e_processmgr_iface;
return ECORE_CALLBACK_PASS_ON;
}
+static void
+_e_processmgr_cb_client_reuse(void *data EINA_UNUSED, E_Client *ec)
+{
+ e_comp_object_signal_callback_del_full(ec->frame,
+ "e,action,launch_real,done",
+ "e",
+ _e_processmgr_cb_launch_done,
+ ec);
+
+ e_comp_object_signal_callback_add(ec->frame,
+ "e,action,launch_real,done",
+ "e",
+ _e_processmgr_cb_launch_done,
+ ec);
+}
+
EAPI Eina_Bool
e_mod_processmgr_init(void)
{
E_LIST_HANDLER_APPEND(_e_processmgr_ec_handlers, E_EVENT_CLIENT_ADD, _e_processmgr_cb_client_add, NULL);
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);
+
return EINA_TRUE;
}
eldbus_shutdown();
+ 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)
e_process_hook_del(hook);