}
static inline Node*
-_request_subchild_except(Node *n, Node *except)
+_request_subchild_except(Node *n, Eo *except)
{
n = _request_subchild(n);
- while (n == except)
+ while (n && n->focusable == except)
{
n = _next(n);
}
{
n = eina_list_nth(pd->focus_stack, eina_list_count(pd->focus_stack) - 2);
if (!n)
- n = _request_subchild_except(pd->root, node);
+ n = _request_subchild_except(pd->root, node->focusable);
if (n)
efl_ui_focus_manager_focus_set(obj, n->focusable);
}
else
{
- last = _request_subchild_except(pd->root, node_get(obj, pd, last_focusable));
+ last = _request_subchild_except(pd->root, last_focusable);
if (last)
efl_ui_focus_manager_focus_set(obj, last->focusable);
}