}
}
+static void
+_e_process_cb_hook_client_del(void *d EINA_UNUSED, E_Client *ec)
+{
+ Eina_Bool force_remove = EINA_TRUE;
+
+ if ((!ec->new_client) && (!stopping))
+ force_remove = EINA_FALSE;
+ else
+ {
+ if (stopping)
+ force_remove = EINA_FALSE;
+ }
+
+ if (force_remove)
+ {
+ ELOGF("PROCESS", "Delete ec from e_process by hook_del.", ec);
+ _e_process_client_info_del(ec);
+ }
+}
+
static Eina_Bool
_e_process_windows_visible_get(pid_t pid, Eina_Bool *visible)
{
hook = e_client_hook_add(E_CLIENT_HOOK_EVAL_VISIBILITY, _e_process_cb_hook_visibility, NULL);
if (hook) _e_process_ec_hooks = eina_list_append(_e_process_ec_hooks, hook);
+ hook = e_client_hook_add(E_CLIENT_HOOK_DEL, _e_process_cb_hook_client_del, NULL);
+ if (hook) _e_process_ec_hooks = eina_list_append(_e_process_ec_hooks, hook);
+
_e_process_manager = e_pm;
return EINA_TRUE;