diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2013-03-31 11:58:41 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2013-03-31 11:58:41 +0900 |
commit | 8dad24565f8eaff95824caa062bf50b551b89ec8 (patch) | |
tree | af6f581f5ab7b16e5d4aac5fc1900f7fa08a0fe3 /src/modules/clock | |
parent | 827cccca06a35828c1e340a70743121f3fb20246 (diff) | |
download | enlightenment-8dad24565f8eaff95824caa062bf50b551b89ec8.tar.gz |
segv-- for clock popup o_popclock object ref benig dangling. this is a
new bug methinks in e18 dev.
Diffstat (limited to 'src/modules/clock')
-rw-r--r-- | src/modules/clock/e_mod_main.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/modules/clock/e_mod_main.c b/src/modules/clock/e_mod_main.c index 28452ef6d9..c5e2fcd0e1 100644 --- a/src/modules/clock/e_mod_main.c +++ b/src/modules/clock/e_mod_main.c @@ -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 @@ -310,6 +311,16 @@ _clock_popup_desk_change(Instance *inst, int type __UNUSED__, E_Event_Desk_After } 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) { Evas *evas; @@ -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"); |