forked from enlightenment/enlightenment
Add code for 'focus forward' in the policy.
SVN revision: 48469
This commit is contained in:
parent
1904bd4097
commit
c5aa274610
|
@ -1523,7 +1523,48 @@ _policy_focus_back(E_Zone *zone)
|
||||||
void
|
void
|
||||||
_policy_focus_forward(E_Zone *zone)
|
_policy_focus_forward(E_Zone *zone)
|
||||||
{
|
{
|
||||||
|
Eina_List *l, *fl = NULL;
|
||||||
|
E_Border *bd, *fbd;
|
||||||
|
|
||||||
|
if (eina_list_count(_pol_focus_stack) < 1) return;
|
||||||
|
|
||||||
// printf("Focus forward\n");
|
// printf("Focus forward\n");
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(_pol_focus_stack, l, bd)
|
||||||
|
{
|
||||||
|
if (bd->zone != zone) continue;
|
||||||
|
fl = eina_list_append(fl, bd);
|
||||||
|
}
|
||||||
|
|
||||||
|
fbd = e_border_focused_get();
|
||||||
|
if (fbd)
|
||||||
|
{
|
||||||
|
if (fbd->parent) return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(fl, l, bd)
|
||||||
|
{
|
||||||
|
if ((fbd) && (bd == fbd))
|
||||||
|
{
|
||||||
|
E_Border *b;
|
||||||
|
|
||||||
|
if ((l->next) && (b = l->next->data))
|
||||||
|
{
|
||||||
|
_policy_border_set_focus(b);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* we've reached the end of the list. Set focus to first */
|
||||||
|
if (b = eina_list_nth(fl, 0))
|
||||||
|
{
|
||||||
|
_policy_border_set_focus(b);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
eina_list_free(fl);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue