forked from enlightenment/enlightenment
Tiling2: Del all callbacks when unloading module.
This fixes T971.
This commit is contained in:
parent
b4900203d5
commit
8463b7af47
|
@ -68,6 +68,7 @@ static struct tiling_mod_main_g
|
||||||
*handler_client_add, *handler_client_remove, *handler_client_iconify,
|
*handler_client_add, *handler_client_remove, *handler_client_iconify,
|
||||||
*handler_client_uniconify, *handler_client_property,
|
*handler_client_uniconify, *handler_client_property,
|
||||||
*handler_desk_set, *handler_compositor_resize;
|
*handler_desk_set, *handler_compositor_resize;
|
||||||
|
E_Client_Hook *handler_client_resize_begin;
|
||||||
E_Client_Menu_Hook *client_menu_hook;
|
E_Client_Menu_Hook *client_menu_hook;
|
||||||
|
|
||||||
Tiling_Info *tinfo;
|
Tiling_Info *tinfo;
|
||||||
|
@ -1268,6 +1269,7 @@ e_modapi_init(E_Module *m)
|
||||||
(Ecore_Event_Handler_Cb)_f, \
|
(Ecore_Event_Handler_Cb)_f, \
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
_G.handler_client_resize_begin =
|
||||||
e_client_hook_add(E_CLIENT_HOOK_RESIZE_BEGIN, _resize_begin_hook, NULL);
|
e_client_hook_add(E_CLIENT_HOOK_RESIZE_BEGIN, _resize_begin_hook, NULL);
|
||||||
HANDLER(_G.handler_client_resize, CLIENT_RESIZE, _resize_hook);
|
HANDLER(_G.handler_client_resize, CLIENT_RESIZE, _resize_hook);
|
||||||
HANDLER(_G.handler_client_move, CLIENT_MOVE, _move_hook);
|
HANDLER(_G.handler_client_move, CLIENT_MOVE, _move_hook);
|
||||||
|
@ -1452,11 +1454,15 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED)
|
||||||
eina_log_domain_unregister(tiling_g.log_domain);
|
eina_log_domain_unregister(tiling_g.log_domain);
|
||||||
tiling_g.log_domain = -1;
|
tiling_g.log_domain = -1;
|
||||||
}
|
}
|
||||||
#define FREE_HANDLER(x) \
|
#define SAFE_FREE(x, freefunc) \
|
||||||
if (x) { \
|
if (x) \
|
||||||
ecore_event_handler_del(x); \
|
{ \
|
||||||
|
freefunc(x); \
|
||||||
x = NULL; \
|
x = NULL; \
|
||||||
}
|
}
|
||||||
|
#define FREE_HANDLER(x) \
|
||||||
|
SAFE_FREE(x, ecore_event_handler_del);
|
||||||
|
|
||||||
FREE_HANDLER(_G.handler_client_resize);
|
FREE_HANDLER(_G.handler_client_resize);
|
||||||
FREE_HANDLER(_G.handler_client_move);
|
FREE_HANDLER(_G.handler_client_move);
|
||||||
FREE_HANDLER(_G.handler_client_add);
|
FREE_HANDLER(_G.handler_client_add);
|
||||||
|
@ -1467,7 +1473,10 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED)
|
||||||
FREE_HANDLER(_G.handler_client_property);
|
FREE_HANDLER(_G.handler_client_property);
|
||||||
|
|
||||||
FREE_HANDLER(_G.handler_desk_set);
|
FREE_HANDLER(_G.handler_desk_set);
|
||||||
|
|
||||||
|
SAFE_FREE(_G.handler_client_resize_begin, e_client_hook_del);
|
||||||
#undef FREE_HANDLER
|
#undef FREE_HANDLER
|
||||||
|
#undef SAFE_FREE
|
||||||
|
|
||||||
#define ACTION_DEL(act, title, value) \
|
#define ACTION_DEL(act, title, value) \
|
||||||
if (act) { \
|
if (act) { \
|
||||||
|
|
Loading…
Reference in New Issue