okra pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=62f7d684dd28bc07e2b350ce6d2cd627291c905c
commit 62f7d684dd28bc07e2b350ce6d2cd627291c905c Author: Stephen 'Okra' Houston <[email protected]> Date: Wed Jan 11 22:06:38 2017 -0600 Enlightenment: Sysinfo Gadget - Properly mark popup as deleted. --- src/modules/sysinfo/cpumonitor/cpumonitor.c | 14 ++++++++++++-- src/modules/sysinfo/memusage/memusage.c | 14 ++++++++++++-- src/modules/sysinfo/netstatus/netstatus.c | 14 ++++++++++++-- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/src/modules/sysinfo/cpumonitor/cpumonitor.c b/src/modules/sysinfo/cpumonitor/cpumonitor.c index a05bde5..a4c712a 100644 --- a/src/modules/sysinfo/cpumonitor/cpumonitor.c +++ b/src/modules/sysinfo/cpumonitor/cpumonitor.c @@ -39,9 +39,18 @@ _cpumonitor_configure_cb(Evas_Object *g) } static void -_cpumonitor_popup_dismissed(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +_cpumonitor_popup_dismissed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { + Instance *inst = data; E_FREE_FUNC(obj, evas_object_del); + inst->cfg->cpumonitor.popup = NULL; +} + +static void +_cpumonitor_popup_deleted(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Instance *inst = data; + inst->cfg->cpumonitor.popup = NULL; } static void @@ -63,7 +72,8 @@ _cpumonitor_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA } popup = elm_ctxpopup_add(e_comp->elm); elm_object_style_set(popup, "noblock"); - evas_object_smart_callback_add(popup, "dismissed", _cpumonitor_popup_dismissed, NULL); + evas_object_smart_callback_add(popup, "dismissed", _cpumonitor_popup_dismissed, inst); + evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _cpumonitor_popup_deleted, inst); snprintf(text, sizeof(text), "%s: %d%%", _("Total CPU Usage"), inst->cfg->cpumonitor.percent); label = elm_label_add(popup); diff --git a/src/modules/sysinfo/memusage/memusage.c b/src/modules/sysinfo/memusage/memusage.c index 827917f..c8b1008 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); diff --git a/src/modules/sysinfo/netstatus/netstatus.c b/src/modules/sysinfo/netstatus/netstatus.c index fc4f31e..a05bd1d 100644 --- a/src/modules/sysinfo/netstatus/netstatus.c +++ b/src/modules/sysinfo/netstatus/netstatus.c @@ -42,9 +42,18 @@ _netstatus_configure_cb(Evas_Object *g) } static void -_netstatus_popup_dismissed(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +_netstatus_popup_dismissed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { + Instance *inst = data; E_FREE_FUNC(obj, evas_object_del); + inst->cfg->netstatus.popup = NULL; +} + +static void +_netstatus_popup_deleted(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Instance *inst = data; + inst->cfg->netstatus.popup = NULL; } static void @@ -66,7 +75,8 @@ _netstatus_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_ } popup = elm_ctxpopup_add(e_comp->elm); elm_object_style_set(popup, "noblock"); - evas_object_smart_callback_add(popup, "dismissed", _netstatus_popup_dismissed, NULL); + evas_object_smart_callback_add(popup, "dismissed", _netstatus_popup_dismissed, inst); + evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _netstatus_popup_deleted, inst); snprintf(text, sizeof(text), "%s<br>%s", inst->cfg->netstatus.instring, inst->cfg->netstatus.outstring); label = elm_label_add(popup); --
