From c57ffdd38d2e12a543421beda0993fe2b15ca5e0 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Sat, 1 May 2010 10:56:42 +0000 Subject: [PATCH] fix segv when disabling/enabling popup SVN revision: 48497 --- src/e_mod_main.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/e_mod_main.c b/src/e_mod_main.c index 3945d4e..2e4c08a 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -274,11 +274,10 @@ _empris_cb_mouse_in (void *data, Evas * e, Evas_Object * obj, void *event_info) { Instance *inst; - E_Gadcon_Popup *popup; - if ((!(inst = data)) || (!inst->ci->show_popup)) + if ((!(inst = data)) || (!inst->ci->show_popup) || (!inst->popup)) return; - popup = inst->popup; + e_gadcon_popup_show (inst->popup); } @@ -287,11 +286,10 @@ _empris_cb_mouse_out (void *data, Evas * e, Evas_Object * obj, void *event_info) { Instance *inst; - E_Gadcon_Popup *popup; if ((!(inst = data)) || ((!inst->ci->show_popup) && (inst->popup))) return; - popup = inst->popup; + e_gadcon_popup_hide (inst->popup); } @@ -343,10 +341,6 @@ _empris_config_updated (Config_Item * ci) { _empris_popup_destroy(inst); } - if (inst->o_popup) - { - evas_object_del(inst->o_popup); - } } break; } @@ -551,9 +545,13 @@ e_modapi_save (E_Module * m) static void _empris_popup_destroy (Instance * inst) { - if (!inst->popup) - return; - e_object_del (E_OBJECT (inst->popup)); + if (inst->popup) + e_object_del (E_OBJECT (inst->popup)); + inst->popup = NULL; + + if (inst->o_popup) + evas_object_del(inst->o_popup); + inst->o_popup = NULL; } static void