summaryrefslogtreecommitdiff
path: root/src/modules/sysinfo/memusage/memusage.c
diff options
context:
space:
mode:
authorStephen 'Okra' Houston <smhouston88@gmail.com>2017-01-11 22:06:38 -0600
committerStephen 'Okra' Houston <smhouston88@gmail.com>2017-01-11 22:06:38 -0600
commit62f7d684dd28bc07e2b350ce6d2cd627291c905c (patch)
treef865a2cf26724454077368e804934671d5f4e28d /src/modules/sysinfo/memusage/memusage.c
parent58a933358098b1b75cc33dba77e1c96dbb60b247 (diff)
downloadenlightenment-62f7d684dd28bc07e2b350ce6d2cd627291c905c.tar.gz
Enlightenment: Sysinfo Gadget - Properly mark popup as deleted.
Diffstat (limited to 'src/modules/sysinfo/memusage/memusage.c')
-rw-r--r--src/modules/sysinfo/memusage/memusage.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/modules/sysinfo/memusage/memusage.c b/src/modules/sysinfo/memusage/memusage.c
index 827917ff68..c8b1008db9 100644
--- a/src/modules/sysinfo/memusage/memusage.c
+++ b/src/modules/sysinfo/memusage/memusage.c
@@ -36,9 +36,18 @@ _memusage_configure_cb(Evas_Object *g)
}
static void
-_memusage_popup_dismissed(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
+_memusage_popup_dismissed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
+ Instance *inst = data;
E_FREE_FUNC(obj, evas_object_del);
+ inst->cfg->memusage.popup = NULL;
+}
+
+static void
+_memusage_popup_deleted(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+ Instance *inst = data;
+ inst->cfg->memusage.popup = NULL;
}
static void
@@ -60,7 +69,8 @@ _memusage_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U
}
popup = elm_ctxpopup_add(e_comp->elm);
elm_object_style_set(popup, "noblock");
- evas_object_smart_callback_add(popup, "dismissed", _memusage_popup_dismissed, NULL);
+ evas_object_smart_callback_add(popup, "dismissed", _memusage_popup_dismissed, inst);
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _memusage_popup_deleted, inst);
snprintf(text, sizeof(text), "%s: %d%%<br>%s: %d%%", _("Total Memory Usage"),
inst->cfg->memusage.real, _("Total Swap Usage"), inst->cfg->memusage.swap);