elm list: Do not process _size_hints_changed_cb when list is going to be deleted.

This fixes list self deletion bug when evas_object_del(list) is called inside item selected callback.

SVN revision: 75832
This commit is contained in:
Daniel Juyung Seo 2012-08-29 23:38:58 +00:00
parent 6e7897f4f4
commit ac8ba87340
2 changed files with 5 additions and 0 deletions

View File

@ -691,6 +691,9 @@ _size_hints_changed_cb(void *data,
Evas_Object *obj __UNUSED__,
void *event_info __UNUSED__)
{
ELM_LIST_DATA_GET(data, sd);
if (sd->delete_me) return;
_items_fix(data);
elm_layout_sizing_eval(data);
}
@ -1548,6 +1551,7 @@ _elm_list_smart_del(Evas_Object *obj)
if (sd->walking)
ERR("ERROR: list deleted while walking.\n");
sd->delete_me = EINA_TRUE;
EINA_LIST_FOREACH (sd->items, l, it)
{
if (it->icon)

View File

@ -153,6 +153,7 @@ struct _Elm_List_Smart_Data
Eina_Bool on_hold : 1;
Eina_Bool multi : 1;
Eina_Bool swipe : 1;
Eina_Bool delete_me : 1;
};
typedef struct _Elm_List_Item Elm_List_Item;