forked from enlightenment/enlightenment
finally fix notification module shutdowns once and for all
SVN revision: 76291
This commit is contained in:
parent
4d3c790f19
commit
1bfe48b180
|
@ -89,7 +89,7 @@ notification_box_visible_set(Notification_Box *b, Eina_Bool visible)
|
||||||
Notification_Box_Icon *ic;
|
Notification_Box_Icon *ic;
|
||||||
Ecore_Cb cb = (Ecore_Cb)(visible ? evas_object_show : evas_object_hide);
|
Ecore_Cb cb = (Ecore_Cb)(visible ? evas_object_show : evas_object_hide);
|
||||||
|
|
||||||
cb(b->o_box);
|
if (b->o_box) cb(b->o_box);
|
||||||
if (b->o_empty) cb(b->o_empty);
|
if (b->o_empty) cb(b->o_empty);
|
||||||
EINA_LIST_FOREACH(b->icons, l, ic)
|
EINA_LIST_FOREACH(b->icons, l, ic)
|
||||||
{
|
{
|
||||||
|
@ -222,7 +222,7 @@ _notification_box_evas_set(Notification_Box *b,
|
||||||
Eina_List *new_icons = NULL;
|
Eina_List *new_icons = NULL;
|
||||||
Notification_Box_Icon *ic, *new_ic;
|
Notification_Box_Icon *ic, *new_ic;
|
||||||
|
|
||||||
evas_object_del(b->o_box);
|
if (b->o_box) evas_object_del(b->o_box);
|
||||||
if (b->o_empty) evas_object_del(b->o_empty);
|
if (b->o_empty) evas_object_del(b->o_empty);
|
||||||
b->o_empty = NULL;
|
b->o_empty = NULL;
|
||||||
b->o_box = e_box_add(evas);
|
b->o_box = e_box_add(evas);
|
||||||
|
|
|
@ -75,13 +75,20 @@ static void
|
||||||
_gc_shutdown(E_Gadcon_Client *gcc)
|
_gc_shutdown(E_Gadcon_Client *gcc)
|
||||||
{
|
{
|
||||||
Instance *inst;
|
Instance *inst;
|
||||||
|
Notification_Box_Icon *ic;
|
||||||
|
|
||||||
inst = gcc->data;
|
inst = gcc->data;
|
||||||
evas_object_event_callback_del_full(inst->n_box->o_box, EVAS_CALLBACK_MOVE,
|
EINA_LIST_FREE(inst->n_box->icons, ic)
|
||||||
notification_box_cb_obj_moveresize, inst);
|
{
|
||||||
evas_object_event_callback_del_full(inst->n_box->o_box, EVAS_CALLBACK_RESIZE,
|
evas_object_del(ic->o_holder);
|
||||||
notification_box_cb_obj_moveresize, inst);
|
evas_object_del(ic->o_holder2);
|
||||||
notification_box_visible_set(inst->n_box, EINA_FALSE);
|
if (ic->border) e_object_unref(E_OBJECT(ic->border));
|
||||||
|
if (ic->notif) e_notification_unref(ic->notif);
|
||||||
|
free(ic);
|
||||||
|
}
|
||||||
|
if (inst->n_box->o_empty) evas_object_del(inst->n_box->o_empty);
|
||||||
|
if (inst->n_box->o_box) evas_object_del(inst->n_box->o_box);
|
||||||
|
inst->n_box->o_box = inst->n_box->o_empty = NULL;
|
||||||
notification_cfg->instances = eina_list_remove(notification_cfg->instances, inst);
|
notification_cfg->instances = eina_list_remove(notification_cfg->instances, inst);
|
||||||
free(inst);
|
free(inst);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue