From c2a560ca7d57abc9fe8301ecc33d607a036c5b76 Mon Sep 17 00:00:00 2001 From: Hyoyoung Chang Date: Tue, 2 Aug 2011 17:41:39 +0900 Subject: [PATCH] [genlist] add barrier at evas_object_del in sel cb --- src/lib/elm_genlist.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index 5aa0615..54db938 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -765,6 +765,11 @@ _del_hook(Evas_Object *obj) if (wd->scr_hold_timer) ecore_timer_del(wd->scr_hold_timer); if (wd->mode_type) eina_stringshare_del(wd->mode_type); if (wd->scr_hold_timer) ecore_timer_del(wd->scr_hold_timer); + if (wd->walking > 0) + { + wd->walking = 0; + elm_genlist_clear(obj); + } free(wd); } @@ -1062,7 +1067,14 @@ _item_select(Elm_Genlist_Item *it) call: it->walking++; it->wd->walking++; - if (it->func.func) it->func.func((void *)it->func.data, it->base.widget, it); + if (it->func.func) + { + Evas_Object *baseobj = it->base.widget; + const char *objtype = NULL; + it->func.func((void *)it->func.data, it->base.widget, it); + objtype = evas_object_type_get(baseobj); + if ((!objtype) || (!strcmp(objtype,""))) return; + } if (!it->delete_me) evas_object_smart_callback_call(it->base.widget, "selected", it); it->walking--; -- 2.7.4