Dear developers.

This patch is about elm_genlist.
When a user delete genlist object at selected callback,
Genlist don't proper handle it.
Before genlist clearing, genlist delete its widget data.
So sometimes, it's crashed.

I made two point diffs
1. add genlist clearning at _del_hook
2. checking at _item_select, whether it's deleted or not.

Index: src/lib/elm_genlist.c
===================================================================
--- src/lib/elm_genlist.c       (리비전 61988)
+++ src/lib/elm_genlist.c       (작업 사본)
@@ -540,6 +540,12 @@
    if (wd->multi_timer) ecore_timer_del(wd->multi_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);
 }
 
@@ -829,7 +835,14 @@
 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, SIG_SELECTED, it);
    it->walking--;
------------------------------------------------------------------------------
BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
The must-attend event for mobile developers. Connect with experts. 
Get tools for creating Super Apps. See the latest technologies.
Sessions, hands-on labs, demos & much more. Register early & save!
http://p.sf.net/sfu/rim-blackberry-1
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to