fix winlist (alt tab) as it screwed up focsu order a bit - fixed now

fix up unfocus with want focus flag
fix up initial focus on wm start


SVN revision: 15753
This commit is contained in:
Carsten Haitzler 2005-07-12 17:51:16 +00:00
parent 493ffb5b2a
commit 0e08ecd3fe
3 changed files with 14 additions and 6 deletions

View File

@ -850,6 +850,13 @@ e_border_stack_below(E_Border *bd, E_Border *below)
}
}
void
e_border_focus_latest_set(E_Border *bd)
{
focus_stack = evas_list_remove(focus_stack, bd);
focus_stack = evas_list_prepend(focus_stack, bd);
}
void
e_border_focus_set(E_Border *bd, int focus, int set)
{
@ -869,10 +876,7 @@ e_border_focus_set(E_Border *bd, int focus, int set)
return;
}
if (!e_winlist_active_get())
{
focus_stack = evas_list_remove(focus_stack, bd);
focus_stack = evas_list_prepend(focus_stack, bd);
}
e_border_focus_latest_set(bd);
// printf("EMIT 0x%x activeve\n", bd->client.win);
edje_object_signal_emit(bd->bg_object, "active", "");
e_focus_event_focus_in(bd);

View File

@ -473,6 +473,7 @@ EAPI void e_border_raise(E_Border *bd);
EAPI void e_border_lower(E_Border *bd);
EAPI void e_border_stack_above(E_Border *bd, E_Border *above);
EAPI void e_border_stack_below(E_Border *bd, E_Border *below);
EAPI void e_border_focus_latest_set(E_Border *bd);
EAPI void e_border_focus_set(E_Border *bd, int focus, int set);
EAPI void e_border_shade(E_Border *bd, E_Direction dir);
EAPI void e_border_unshade(E_Border *bd, E_Direction dir);

View File

@ -252,8 +252,11 @@ e_winlist_hide(void)
}
if (!bd->lock_user_stacking)
e_border_raise(bd);
if (!bd->lock_focus_in)
e_border_focus_set(bd, 1, 1);
if (!bd->lock_focus_out)
{
e_border_focus_set(bd, 1, 1);
e_border_focus_latest_set(bd);
}
if ((e_config->focus_policy != E_FOCUS_CLICK) ||
(e_config->winlist_warp_at_end) ||
(e_config->winlist_warp_while_selecting))