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; } --
