diff --git a/src/bin/e_widget.c b/src/bin/e_widget.c index 886837d6a..fdff6b191 100644 --- a/src/bin/e_widget.c +++ b/src/bin/e_widget.c @@ -141,7 +141,7 @@ e_widget_sub_object_add(Evas_Object *obj, Evas_Object *sobj) { API_ENTRY return; - if (eina_list_data_find(sd->subobjs, obj)) return; + if (eina_list_data_find(sd->subobjs, sobj)) return; evas_object_event_callback_del(sobj, EVAS_CALLBACK_DEL, _sub_obj_del); @@ -514,19 +514,13 @@ static void _e_smart_del(Evas_Object *obj) { INTERNAL_ENTRY; - void *po = NULL; if (sd->del_func) sd->del_func(obj); while (sd->subobjs) { - if (sd->subobjs->data == po) - { - po = sd->subobjs->data; - sd->subobjs = eina_list_remove_list(sd->subobjs, sd->subobjs); - continue; - } - po = sd->subobjs->data; - evas_object_del(sd->subobjs->data); + Evas_Object *sobj = sd->subobjs->data; + evas_object_del(sobj); + sd->subobjs = eina_list_remove(sd->subobjs, sobj); } free(sd); }