Subject: [E-devel] [patch] elm_genlist - bugfix evas_object_del at
selected callback
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@62040
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
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);
}
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--;