forked from enlightenment/efl
Edje load: Although we don't use them that much, we have refcounts in evas.
Don't assume an evas_object_del has to delete the object. SVN revision: 71895
This commit is contained in:
parent
13669e9e19
commit
cee70e9e33
|
@ -1234,7 +1234,7 @@ _edje_file_del(Edje *ed)
|
|||
}
|
||||
|
||||
if (ed->L) _edje_lua2_script_shutdown(ed);
|
||||
while (ed->subobjs) evas_object_del(ed->subobjs->data);
|
||||
while (ed->subobjs) _edje_subobj_unregister(ed, ed->subobjs->data);
|
||||
if (ed->table_parts) free(ed->table_parts);
|
||||
ed->table_parts = NULL;
|
||||
ed->table_parts_size = 0;
|
||||
|
|
|
@ -2115,6 +2115,7 @@ void _edje_lib_ref(void);
|
|||
void _edje_lib_unref(void);
|
||||
|
||||
void _edje_subobj_register(Edje *ed, Evas_Object *ob);
|
||||
void _edje_subobj_unregister(Edje *ed, Evas_Object *ob);
|
||||
|
||||
void _edje_multisense_init(void);
|
||||
void _edje_multisense_shutdown(void);
|
||||
|
|
|
@ -5225,9 +5225,7 @@ static void
|
|||
_cb_subobj_del(void *data, __UNUSED__ Evas *e, Evas_Object *obj, __UNUSED__ void *event_info)
|
||||
{
|
||||
Edje *ed = data;
|
||||
ed->subobjs = eina_list_remove(ed->subobjs, obj);
|
||||
evas_object_event_callback_del_full(obj, EVAS_CALLBACK_DEL,
|
||||
_cb_subobj_del, ed);
|
||||
_edje_subobj_unregister(ed, obj);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -5238,4 +5236,12 @@ _edje_subobj_register(Edje *ed, Evas_Object *ob)
|
|||
_cb_subobj_del, ed);
|
||||
}
|
||||
|
||||
void
|
||||
_edje_subobj_unregister(Edje *ed, Evas_Object *obj)
|
||||
{
|
||||
ed->subobjs = eina_list_remove(ed->subobjs, obj);
|
||||
evas_object_event_callback_del_full(obj, EVAS_CALLBACK_DEL,
|
||||
_cb_subobj_del, ed);
|
||||
}
|
||||
|
||||
/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
|
||||
|
|
Loading…
Reference in New Issue