forked from enlightenment/enlightenment
Enlightenment: Sysinfo gadgets - Remove temporary gadgets correctly.
This commit is contained in:
parent
ddb9f99692
commit
2f75513396
|
@ -417,7 +417,7 @@ _batman_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_data)
|
|||
|
||||
if (inst->o_main != event_data) return;
|
||||
|
||||
#if defined(HAVE_EEZE)
|
||||
#ifdef HAVE_EEZE
|
||||
_batman_udev_stop(inst);
|
||||
#elif defined __OpenBSD__ || defined __DragonFly__ || defined __FreeBSD__ || defined __NetBSD__
|
||||
_batman_sysctl_stop();
|
||||
|
@ -431,13 +431,17 @@ _batman_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_data)
|
|||
eeze_shutdown();
|
||||
#endif
|
||||
|
||||
evas_object_event_callback_del_full(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_batman_remove, data);
|
||||
|
||||
sysinfo_config->items = eina_list_remove(sysinfo_config->items, inst->cfg);
|
||||
E_FREE(inst->cfg);
|
||||
}
|
||||
|
||||
void
|
||||
sysinfo_batman_remove(Instance *inst)
|
||||
sysinfo_batman_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED)
|
||||
{
|
||||
Instance *inst = data;
|
||||
|
||||
#ifdef HAVE_EEZE
|
||||
_batman_udev_stop(inst);
|
||||
#elif defined __OpenBSD__ || defined __DragonFly__ || defined __FreeBSD__ || defined __NetBSD__
|
||||
|
@ -549,6 +553,7 @@ batman_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient EINA_UNU
|
|||
evas_object_size_hint_aspect_set(inst->o_main, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
evas_object_smart_callback_add(parent, "gadget_created", _batman_created_cb, inst);
|
||||
evas_object_smart_callback_add(parent, "gadget_removed", _batman_removed_cb, inst);
|
||||
evas_object_event_callback_add(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_batman_remove, inst);
|
||||
evas_object_show(inst->o_main);
|
||||
|
||||
#ifdef HAVE_EEZE
|
||||
|
|
|
@ -767,7 +767,7 @@ _cpuclock_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_data)
|
|||
|
||||
if (inst->o_main != event_data) return;
|
||||
|
||||
if (inst->cfg->cpuclock.handler)
|
||||
if (inst->cfg->cpuclock.handler)
|
||||
ecore_event_handler_del(inst->cfg->cpuclock.handler);
|
||||
|
||||
if (inst->cfg->cpuclock.frequency_check_thread)
|
||||
|
@ -780,13 +780,17 @@ _cpuclock_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_data)
|
|||
eina_stringshare_del(inst->cfg->cpuclock.governor);
|
||||
if (inst->cfg->cpuclock.status) _cpuclock_status_free(inst->cfg->cpuclock.status);
|
||||
|
||||
evas_object_event_callback_del_full(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_cpuclock_remove, data);
|
||||
|
||||
sysinfo_config->items = eina_list_remove(sysinfo_config->items, inst->cfg);
|
||||
E_FREE(inst->cfg);
|
||||
}
|
||||
|
||||
void
|
||||
sysinfo_cpuclock_remove(Instance *inst)
|
||||
sysinfo_cpuclock_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED)
|
||||
{
|
||||
Instance *inst = data;
|
||||
|
||||
if (inst->cfg->cpuclock.handler)
|
||||
ecore_event_handler_del(inst->cfg->cpuclock.handler);
|
||||
|
||||
|
@ -905,6 +909,7 @@ cpuclock_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient EINA_U
|
|||
evas_object_size_hint_aspect_set(inst->o_main, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
evas_object_smart_callback_add(parent, "gadget_created", _cpuclock_created_cb, inst);
|
||||
evas_object_smart_callback_add(parent, "gadget_removed", _cpuclock_removed_cb, inst);
|
||||
evas_object_event_callback_add(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_cpuclock_remove, inst);
|
||||
evas_object_show(inst->o_main);
|
||||
|
||||
if (inst->cfg->id < 0) return inst->o_main;
|
||||
|
|
|
@ -136,13 +136,16 @@ _cpumonitor_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_dat
|
|||
evas_object_del(core->layout);
|
||||
E_FREE_FUNC(core, free);
|
||||
}
|
||||
evas_object_event_callback_del_full(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_cpumonitor_remove, data);
|
||||
|
||||
sysinfo_config->items = eina_list_remove(sysinfo_config->items, inst->cfg);
|
||||
E_FREE(inst->cfg);
|
||||
}
|
||||
|
||||
void
|
||||
sysinfo_cpumonitor_remove(Instance *inst)
|
||||
sysinfo_cpumonitor_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED)
|
||||
{
|
||||
Instance *inst = data;
|
||||
CPU_Core *core;
|
||||
|
||||
if (inst->cfg->cpumonitor.usage_check_thread)
|
||||
|
@ -280,6 +283,7 @@ cpumonitor_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient EINA
|
|||
E_EXPAND(inst->o_main);
|
||||
evas_object_smart_callback_add(parent, "gadget_created", _cpumonitor_created_cb, inst);
|
||||
evas_object_smart_callback_add(parent, "gadget_removed", _cpumonitor_removed_cb, inst);
|
||||
evas_object_event_callback_add(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_cpumonitor_remove, inst);
|
||||
evas_object_show(inst->o_main);
|
||||
|
||||
if (inst->cfg->id < 0) return inst->o_main;
|
||||
|
|
|
@ -92,14 +92,17 @@ _memusage_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_data)
|
|||
ecore_thread_cancel(inst->cfg->memusage.usage_check_thread);
|
||||
inst->cfg->memusage.usage_check_thread = NULL;
|
||||
}
|
||||
evas_object_event_callback_del_full(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_memusage_remove, data);
|
||||
|
||||
sysinfo_config->items = eina_list_remove(sysinfo_config->items, inst->cfg);
|
||||
E_FREE(inst->cfg);
|
||||
}
|
||||
|
||||
void
|
||||
sysinfo_memusage_remove(Instance *inst)
|
||||
sysinfo_memusage_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED)
|
||||
{
|
||||
Instance *inst = data;
|
||||
|
||||
if (inst->cfg->memusage.usage_check_thread)
|
||||
{
|
||||
ecore_thread_cancel(inst->cfg->memusage.usage_check_thread);
|
||||
|
@ -224,6 +227,7 @@ memusage_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient EINA_U
|
|||
E_EXPAND(inst->o_main);
|
||||
evas_object_smart_callback_add(parent, "gadget_created", _memusage_created_cb, inst);
|
||||
evas_object_smart_callback_add(parent, "gadget_removed", _memusage_removed_cb, inst);
|
||||
evas_object_event_callback_add(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_memusage_remove, inst);
|
||||
evas_object_show(inst->o_main);
|
||||
|
||||
if (inst->cfg->id < 0) return inst->o_main;
|
||||
|
|
|
@ -105,14 +105,17 @@ _netstatus_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_data
|
|||
ecore_thread_cancel(inst->cfg->netstatus.usage_check_thread);
|
||||
inst->cfg->netstatus.usage_check_thread = NULL;
|
||||
}
|
||||
evas_object_event_callback_del_full(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_netstatus_remove, data);
|
||||
|
||||
sysinfo_config->items = eina_list_remove(sysinfo_config->items, inst->cfg);
|
||||
E_FREE(inst->cfg);
|
||||
}
|
||||
|
||||
void
|
||||
sysinfo_netstatus_remove(Instance *inst)
|
||||
sysinfo_netstatus_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED)
|
||||
{
|
||||
Instance *inst = data;
|
||||
|
||||
if (inst->cfg->netstatus.usage_check_thread)
|
||||
{
|
||||
ecore_thread_cancel(inst->cfg->netstatus.usage_check_thread);
|
||||
|
@ -193,6 +196,7 @@ netstatus_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient EINA_
|
|||
evas_object_size_hint_aspect_set(inst->o_main, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
evas_object_smart_callback_add(parent, "gadget_created", _netstatus_created_cb, inst);
|
||||
evas_object_smart_callback_add(parent, "gadget_removed", _netstatus_removed_cb, inst);
|
||||
evas_object_event_callback_add(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_netstatus_remove, inst);
|
||||
evas_object_show(inst->o_main);
|
||||
|
||||
if (inst->cfg->id < 0) return inst->o_main;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#include "sysinfo.h"
|
||||
|
||||
static void _sysinfo_deleted_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED);
|
||||
|
||||
static void
|
||||
_sysinfo_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_data)
|
||||
{
|
||||
|
@ -7,17 +9,32 @@ _sysinfo_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_data)
|
|||
|
||||
if (inst->o_main != event_data) return;
|
||||
|
||||
sysinfo_batman_remove(inst);
|
||||
sysinfo_thermal_remove(inst);
|
||||
sysinfo_cpuclock_remove(inst);
|
||||
sysinfo_cpumonitor_remove(inst);
|
||||
sysinfo_memusage_remove(inst);
|
||||
sysinfo_netstatus_remove(inst);
|
||||
sysinfo_batman_remove(inst, NULL, NULL, NULL);
|
||||
sysinfo_thermal_remove(inst, NULL, NULL, NULL);
|
||||
sysinfo_cpuclock_remove(inst, NULL, NULL, NULL);
|
||||
sysinfo_cpumonitor_remove(inst, NULL, NULL, NULL);
|
||||
sysinfo_memusage_remove(inst, NULL, NULL, NULL);
|
||||
sysinfo_netstatus_remove(inst, NULL, NULL, NULL);
|
||||
|
||||
evas_object_event_callback_del_full(inst->o_main, EVAS_CALLBACK_DEL, _sysinfo_deleted_cb, data);
|
||||
|
||||
sysinfo_config->items = eina_list_remove(sysinfo_config->items, inst->cfg);
|
||||
E_FREE(inst->cfg);
|
||||
}
|
||||
|
||||
static void
|
||||
_sysinfo_deleted_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED)
|
||||
{
|
||||
Instance *inst = data;
|
||||
|
||||
sysinfo_batman_remove(inst, NULL, NULL, NULL);
|
||||
sysinfo_thermal_remove(inst, NULL, NULL, NULL);
|
||||
sysinfo_cpuclock_remove(inst, NULL, NULL, NULL);
|
||||
sysinfo_cpumonitor_remove(inst, NULL, NULL, NULL);
|
||||
sysinfo_memusage_remove(inst, NULL, NULL, NULL);
|
||||
sysinfo_netstatus_remove(inst, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_sysinfo_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSED)
|
||||
{
|
||||
|
@ -120,6 +137,7 @@ sysinfo_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient EINA_UN
|
|||
elm_object_style_set(inst->o_main, "no_inset_shadow");
|
||||
E_EXPAND(inst->o_main);
|
||||
evas_object_size_hint_aspect_set(inst->o_main, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
evas_object_event_callback_add(inst->o_main, EVAS_CALLBACK_DEL, _sysinfo_deleted_cb, inst);
|
||||
evas_object_show(inst->o_main);
|
||||
|
||||
evas_object_smart_callback_add(parent, "gadget_created", _sysinfo_created_cb, inst);
|
||||
|
|
|
@ -235,12 +235,12 @@ EINTERN Evas_Object *sysinfo_cpumonitor_create(Evas_Object *parent, Instance *in
|
|||
EINTERN Evas_Object *sysinfo_memusage_create(Evas_Object *parent, Instance *inst);
|
||||
EINTERN Evas_Object *sysinfo_netstatus_create(Evas_Object *parent, Instance *inst);
|
||||
|
||||
EINTERN void sysinfo_batman_remove(Instance *inst);
|
||||
EINTERN void sysinfo_thermal_remove(Instance *inst);
|
||||
EINTERN void sysinfo_cpuclock_remove(Instance *inst);
|
||||
EINTERN void sysinfo_cpumonitor_remove(Instance *inst);
|
||||
EINTERN void sysinfo_memusage_remove(Instance *inst);
|
||||
EINTERN void sysinfo_netstatus_remove(Instance *inst);
|
||||
EINTERN void sysinfo_batman_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED);
|
||||
EINTERN void sysinfo_thermal_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED);
|
||||
EINTERN void sysinfo_cpuclock_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED);
|
||||
EINTERN void sysinfo_cpumonitor_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED);
|
||||
EINTERN void sysinfo_memusage_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED);
|
||||
EINTERN void sysinfo_netstatus_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED);
|
||||
|
||||
extern Config *sysinfo_config;
|
||||
extern Eina_List *sysinfo_instances;
|
||||
|
|
|
@ -195,13 +195,17 @@ _thermal_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_data)
|
|||
eeze_shutdown();
|
||||
#endif
|
||||
|
||||
evas_object_event_callback_del_full(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_thermal_remove, data);
|
||||
|
||||
sysinfo_config->items = eina_list_remove(sysinfo_config->items, inst->cfg);
|
||||
E_FREE(inst->cfg);
|
||||
}
|
||||
|
||||
void
|
||||
sysinfo_thermal_remove(Instance *inst)
|
||||
sysinfo_thermal_remove(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED)
|
||||
{
|
||||
Instance *inst = data;
|
||||
|
||||
_thermal_face_shutdown(inst);
|
||||
|
||||
#ifdef HAVE_EEZE
|
||||
|
@ -290,6 +294,7 @@ thermal_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient EINA_UN
|
|||
evas_object_size_hint_aspect_set(inst->o_main, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
|
||||
evas_object_smart_callback_add(parent, "gadget_created", _thermal_created_cb, inst);
|
||||
evas_object_smart_callback_add(parent, "gadget_removed", _thermal_removed_cb, inst);
|
||||
evas_object_event_callback_add(inst->o_main, EVAS_CALLBACK_DEL, sysinfo_thermal_remove, inst);
|
||||
evas_object_show(inst->o_main);
|
||||
|
||||
#ifdef HAVE_EEZE
|
||||
|
|
Loading…
Reference in New Issue