item = DATA_GET(sd->current);
if (!item) return;
-
+ if (sd->deleting) return;
+
if (item->func)
item->func((void *)item->base.data, WIDGET(item), item);
if (!item->deleted)
{
if (item2 == item)
{
- sd->items = eina_list_remove_list(sd->items, l);
-
if (sd->current == l)
{
sd->current = l->prev;
}
else _send_msg(sd, MSG_FLIP_DOWN, "");
}
+ sd->items = eina_list_remove_list(sd->items, l);
break;
}
}
if (!sd->current) return;
+ if (sd->deleting) return;
if (sd->current == sd->items)
{
sd->current = eina_list_last(sd->items);
if (!sd->current) return;
+ if (sd->deleting) return;
sd->current = eina_list_next(sd->current);
if (!sd->current)
{
{
ELM_FLIPSELECTOR_DATA_GET(obj, sd);
+ sd->deleting = EINA_TRUE;
+
if (sd->walking) ERR("flipselector deleted while walking.\n");
while (sd->items)