diff options
author | Cedric BAIL <cedric@osg.samsung.com> | 2018-05-14 10:11:58 -0700 |
---|---|---|
committer | Cedric BAIL <cedric@osg.samsung.com> | 2018-05-22 16:55:08 -0700 |
commit | d2e9c044f9e3ab96e60b3abb6388bda58e19beec (patch) | |
tree | 6ab245d80d6221b4090452fc6dae796378bd8f20 | |
parent | 1719d3f9053f9bfb379b4f5401c32630930183b7 (diff) | |
download | efl-d2e9c044f9e3ab96e60b3abb6388bda58e19beec.tar.gz |
eo: efl_invalidate should also be triggered for object with no parent before the destructor.
-rw-r--r-- | src/lib/eo/eo_private.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/eo/eo_private.h b/src/lib/eo/eo_private.h index ee8dfa7aba..419ea2f0be 100644 --- a/src/lib/eo/eo_private.h +++ b/src/lib/eo/eo_private.h @@ -254,6 +254,7 @@ _eo_condtor_reset(_Eo_Object *obj) typedef struct _Efl_Object_Data Efl_Object_Data; EOLIAN void _efl_object_parent_set(Eo *obj, Efl_Object_Data *pd, Eo *parent_id); +void _efl_invalidate(_Eo_Object *obj); static inline void _efl_del_internal(_Eo_Object *obj, const char *func_name, const char *file, int line) @@ -284,6 +285,10 @@ _efl_del_internal(_Eo_Object *obj, const char *func_name, const char *file, int _efl_object_parent_set(_eo_obj_id_get(obj), efl_data_scope_get(_eo_obj_id_get(obj), EFL_OBJECT_CLASS), NULL); } } + else if (!obj->invalidate || !obj->is_invalidating) + { + _efl_invalidate(obj); + } efl_event_callback_call(_eo_obj_id_get(obj), EFL_EVENT_DEL, NULL); |