discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=7828db4575e3b21c2bd3d96cb75d24be391a9c5f

commit 7828db4575e3b21c2bd3d96cb75d24be391a9c5f
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Mar 10 15:57:15 2017 -0500

    track and delete xdg-shell client hooks
    
    fix T5242
---
 src/modules/wl_desktop_shell/e_mod_main.c | 3 ++-
 src/modules/wl_desktop_shell/e_mod_main.h | 2 ++
 src/modules/wl_desktop_shell/xdg5.c       | 2 +-
 src/modules/wl_desktop_shell/xdg6.c       | 2 +-
 4 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index 3775baa..c19f3de 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -4,6 +4,7 @@
 
 EINTERN Eina_Hash *shell_resources;
 EINTERN Eina_Hash *xdg_shell_resources;
+EINTERN Eina_List *hooks;
 
 EINTERN void
 e_shell_surface_destroy(struct wl_resource *resource)
@@ -194,6 +195,6 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED)
    e_input_panel_shutdown();
    eina_hash_free(shell_resources);
    eina_hash_free(xdg_shell_resources);
-
+   E_FREE_LIST(hooks, e_client_hook_del);
    return 1;
 }
diff --git a/src/modules/wl_desktop_shell/e_mod_main.h 
b/src/modules/wl_desktop_shell/e_mod_main.h
index 5aa64dc..d604254 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.h
+++ b/src/modules/wl_desktop_shell/e_mod_main.h
@@ -6,6 +6,8 @@ EINTERN void        e_input_panel_shutdown(void);
 
 EINTERN Eina_Hash *shell_resources;
 EINTERN Eina_Hash *xdg_shell_resources;
+EINTERN Eina_List *hooks;
+
 
 EINTERN void e_shell_surface_destroy(struct wl_resource *resource);
 EINTERN void e_shell_surface_cb_destroy(struct wl_resource *resource);
diff --git a/src/modules/wl_desktop_shell/xdg5.c 
b/src/modules/wl_desktop_shell/xdg5.c
index 5b0b0c5..dceb0ec 100644
--- a/src/modules/wl_desktop_shell/xdg5.c
+++ b/src/modules/wl_desktop_shell/xdg5.c
@@ -902,6 +902,6 @@ e_xdg_shell_v5_init(void)
         ERR("Could not create xdg_shell global");
         return EINA_FALSE;
      }
-   e_client_hook_add(E_CLIENT_HOOK_DEL, _xdg5_client_hook_del, NULL);
+   hooks = eina_list_append(hooks, e_client_hook_add(E_CLIENT_HOOK_DEL, 
_xdg5_client_hook_del, NULL));
    return EINA_TRUE;
 }
diff --git a/src/modules/wl_desktop_shell/xdg6.c 
b/src/modules/wl_desktop_shell/xdg6.c
index 27e4cb8..b6d34de 100644
--- a/src/modules/wl_desktop_shell/xdg6.c
+++ b/src/modules/wl_desktop_shell/xdg6.c
@@ -1445,6 +1445,6 @@ e_xdg_shell_v6_init(void)
         ERR("Could not create xdg_shell global");
         return EINA_FALSE;
      }
-   e_client_hook_add(E_CLIENT_HOOK_DEL, _xdg6_client_hook_del, NULL);
+   hooks = eina_list_append(hooks, e_client_hook_add(E_CLIENT_HOOK_DEL, 
_xdg6_client_hook_del, NULL));
    return EINA_TRUE;
 }

-- 


Reply via email to