summaryrefslogtreecommitdiff
path: root/src/modules/clock
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2013-03-31 11:58:41 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2013-03-31 11:58:41 +0900
commit8dad24565f8eaff95824caa062bf50b551b89ec8 (patch)
treeaf6f581f5ab7b16e5d4aac5fc1900f7fa08a0fe3 /src/modules/clock
parent827cccca06a35828c1e340a70743121f3fb20246 (diff)
downloadenlightenment-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.c13
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");