segv-- for clock popup o_popclock object ref benig dangling. this is a

new bug methinks in e18 dev.
This commit is contained in:
Carsten Haitzler 2013-03-31 11:58:41 +09:00 committed by Cedric BAIL
parent 7e69a6d5d4
commit eb0d0487cf
1 changed files with 13 additions and 0 deletions

View File

@ -291,6 +291,7 @@ _clock_settings_cb(void *d1, void *d2 __UNUSED__)
e_int_config_clock_module(inst->popup->win->zone->container, inst->cfg);
e_object_del(E_OBJECT(inst->popup));
inst->popup = NULL;
inst->o_popclock = NULL;
}
static Eina_Bool
@ -309,6 +310,16 @@ _clock_popup_desk_change(Instance *inst, int type __UNUSED__, E_Event_Desk_After
return ECORE_CALLBACK_RENEW;
}
static void
_popclock_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *info __UNUSED__)
{
Instance *inst = data;
if (inst->o_popclock == obj)
{
inst->o_popclock = NULL;
}
}
static void
_clock_popup_new(Instance *inst)
{
@ -332,6 +343,8 @@ _clock_popup_new(Instance *inst)
oi = edje_object_add(evas);
inst->o_popclock = oi;
evas_object_event_callback_add(oi, EVAS_CALLBACK_DEL, _popclock_del_cb, inst);
if (inst->cfg->digital_clock)
e_theme_edje_object_set(oi, "base/theme/modules/clock",
"e/modules/clock/digital");