diff --git a/legacy/elementary/src/lib/elm_genlist.c b/legacy/elementary/src/lib/elm_genlist.c index ddc0804c2b..2d32454bd7 100644 --- a/legacy/elementary/src/lib/elm_genlist.c +++ b/legacy/elementary/src/lib/elm_genlist.c @@ -3153,7 +3153,6 @@ elm_genlist_clear(Evas_Object *obj) } return; } - wd->clear_me = EINA_FALSE; while (wd->items) { Elm_Genlist_Item *it = ELM_GENLIST_ITEM_FROM_INLIST(wd->items); @@ -3170,12 +3169,13 @@ elm_genlist_clear(Evas_Object *obj) it->wd->group_items = eina_list_remove(it->wd->group_items, it); elm_widget_item_pre_notify_del(it); if (it->realized) _item_unrealize(it); - if (it->itc->func.del) + if (((wd->clear_me) || (!it->delete_me)) && (it->itc->func.del)) it->itc->func.del((void *)it->base.data, it->base.widget); if (it->long_timer) ecore_timer_del(it->long_timer); if (it->swipe_timer) ecore_timer_del(it->swipe_timer); elm_widget_item_del(it); } + wd->clear_me = EINA_FALSE; wd->anchor_item = NULL; while (wd->blocks) {