Revert "e_policy_visiblity: fix leak" 00/219500/3
authorJunSeok Kim <juns.kim@samsung.com>
Thu, 5 Dec 2019 09:39:49 +0000 (09:39 +0000)
committerGwanglim Lee <gl77.lee@samsung.com>
Thu, 5 Dec 2019 09:41:10 +0000 (09:41 +0000)
This reverts commit 8b3729e78f68cefacbe1acd149b23d6d79b7fa19.
Change-Id: I2404233d608b3aa5b12646465e4923309ae5cea9

src/bin/e_policy_visibility.c

index 44982f5178bbd4da0e274618440ab0a651b9ce0c..fddcf81dbce1c4b70b8c0b307d7cfcc02d3ea8c2 100644 (file)
@@ -1836,7 +1836,7 @@ _e_vis_hook_new_client_post(void *data EINA_UNUSED, E_Client *ec)
 }
 
 static void
-_e_vis_hook_client_del(void *data EINA_UNUSED, E_Client *ec)
+_e_vis_client_remove(E_Client *ec)
 {
    E_VIS_CLIENT_GET_OR_RETURN(vc, ec);
    eina_hash_del_by_key(pol_vis->clients_hash, &ec);
@@ -1848,6 +1848,24 @@ _e_vis_hook_client_del(void *data EINA_UNUSED, E_Client *ec)
      _e_vis_update_foreground_job_queue();
 }
 
+static void
+_e_vis_hook_client_del(void *data EINA_UNUSED, E_Client *ec)
+{
+   if (!ec->new_client) return;
+   _e_vis_client_remove(ec);
+}
+
+static Eina_Bool
+_e_vis_cb_client_remove(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
+{
+   E_Event_Client *ev;
+
+   ev = event;
+   _e_vis_client_remove(ev->ec);
+
+   return ECORE_CALLBACK_PASS_ON;
+}
+
 static void
 _e_vis_cb_child_launch_done(void *data, Evas_Object *obj, const char *signal, const char *source)
 {
@@ -2037,6 +2055,8 @@ _e_vis_event_init(void)
    E_LIST_HOOK_APPEND(pol_vis->hooks, E_CLIENT_HOOK_NEW_CLIENT_POST, _e_vis_hook_new_client_post, NULL);
    E_LIST_HOOK_APPEND(pol_vis->hooks, E_CLIENT_HOOK_DEL, _e_vis_hook_client_del, NULL);
 
+   E_LIST_HANDLER_APPEND(pol_vis->handlers, E_EVENT_CLIENT_REMOVE,   _e_vis_cb_client_remove, NULL);
+
    E_COMP_OBJECT_INTERCEPT_HOOK_APPEND(pol_vis->interceptors, E_COMP_OBJECT_INTERCEPT_HOOK_SHOW_HELPER,  _e_vis_intercept_show, NULL);
    E_COMP_OBJECT_INTERCEPT_HOOK_APPEND(pol_vis->interceptors, E_COMP_OBJECT_INTERCEPT_HOOK_HIDE,         _e_vis_intercept_hide, NULL);