forked from enlightenment/efl
Evas filters: Fix errors in Evas_Object::destructor
Remove invalid call to source_unset and call the appropriate Eo evas_obj_text_filter_source_set in case of Evas_Text with proxy sources.
This commit is contained in:
parent
cc21f8f173
commit
63a18f3fce
|
@ -657,7 +657,12 @@ _destructor(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
EINA_LIST_FOREACH_SAFE(obj->clip.clipees, l, l2, tmp)
|
||||
evas_object_clip_unset(tmp->object);
|
||||
EINA_LIST_FOREACH_SAFE(obj->proxy->proxies, l, l2, proxy)
|
||||
evas_object_image_source_unset(proxy);
|
||||
{
|
||||
if (eo_isa(proxy, EVAS_OBJ_IMAGE_CLASS))
|
||||
evas_object_image_source_unset(proxy);
|
||||
else if (eo_isa(proxy, EVAS_OBJ_TEXT_CLASS))
|
||||
eo_do(proxy, evas_obj_text_filter_source_set(NULL, eo_obj));
|
||||
}
|
||||
if (obj->cur->clipper) evas_object_clip_unset(eo_obj);
|
||||
evas_object_map_set(eo_obj, NULL);
|
||||
if (obj->is_smart) evas_object_smart_del(eo_obj);
|
||||
|
|
|
@ -2808,6 +2808,14 @@ _filter_source_set(Eo *eo_obj, void *_pd, va_list *list)
|
|||
obj = eo_data_scope_get(eo_obj, EVAS_OBJ_CLASS);
|
||||
if (eo_source) source = eo_data_scope_get(eo_source, EVAS_OBJ_CLASS);
|
||||
|
||||
if (!name)
|
||||
{
|
||||
if (!eo_source || !o->cur.filter.sources) return;
|
||||
if (eina_hash_del_by_data(o->cur.filter.sources, eo_source))
|
||||
goto update;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!o->cur.filter.sources)
|
||||
{
|
||||
o->cur.filter.sources = eina_hash_string_small_new
|
||||
|
|
Loading…
Reference in New Issue