if (it->selected) _item_unselect(it);
if (it == sd->focused_item)
{
- elm_object_item_focus_set(EO_OBJ(it), EINA_FALSE);
- sd->focused_item = NULL;
+ Elm_Gen_Item *tmp;
+ Eina_Bool find;
+ tmp = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->next);
+ find = _item_focusable_search(&tmp, 1);
+ if (find) elm_object_item_focus_set(tmp, EINA_TRUE);
+ else
+ {
+ tmp = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->prev);
+ find = _item_focusable_search(&tmp, -1);
+ if (find) elm_object_item_focus_set(tmp, EINA_TRUE);
+ else
+ {
+ elm_object_item_focus_set(it, EINA_FALSE);
+ sd->focused_item = NULL;
+ }
+ }
}
if (it == sd->key_down_item) sd->key_down_item = NULL;
if (it == sd->highlighted_item) sd->highlighted_item = NULL;