From adcd7517f8a7b9a1928e474a07d58e5ec5c9f41e Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Sat, 18 Aug 2007 10:45:38 +0000 Subject: [PATCH] When the module gets unloaded, kill open Config Panels. If left open, they cause segfaults for things like mouse_events on buttons, etc, etc. SVN revision: 31379 --- src/modules/conf/e_conf.c | 12 ++++++++++++ src/modules/conf/e_conf.h | 1 + src/modules/conf/e_mod_main.c | 1 + 3 files changed, 14 insertions(+) diff --git a/src/modules/conf/e_conf.c b/src/modules/conf/e_conf.c index 3149f9381..d653637c6 100644 --- a/src/modules/conf/e_conf.c +++ b/src/modules/conf/e_conf.c @@ -179,6 +179,18 @@ e_configure_show(E_Container *con) _e_configure = eco; } +EAPI void +e_configure_del(void) +{ + E_Configure *eco; + + if (_e_configure) + { + eco = _e_configure; + e_object_del(E_OBJECT(eco)); + } +} + static void _e_configure_free(E_Configure *eco) { diff --git a/src/modules/conf/e_conf.h b/src/modules/conf/e_conf.h index 3b47eee27..c65de9415 100644 --- a/src/modules/conf/e_conf.h +++ b/src/modules/conf/e_conf.h @@ -5,6 +5,7 @@ #define E_CONF_H EAPI void e_configure_show(E_Container *con); +EAPI void e_configure_del(void); #endif #endif diff --git a/src/modules/conf/e_mod_main.c b/src/modules/conf/e_mod_main.c index bf777a8a2..9bff83349 100644 --- a/src/modules/conf/e_mod_main.c +++ b/src/modules/conf/e_mod_main.c @@ -54,6 +54,7 @@ e_modapi_init(E_Module *m) EAPI int e_modapi_shutdown(E_Module *m) { + e_configure_del(); /* remove module-supplied menu additions */ if (maug) {