Instead of always focusing home when there is a problem showing_below, try

to focus the previous border in the focus stack, and if that fails, then
focus home (fixed #7 in 'illume2 problems' email).



SVN revision: 48153
This commit is contained in:
Christopher Michael 2010-04-20 00:06:18 +00:00
parent f08d02f9ab
commit b27bad5c9a
1 changed files with 7 additions and 6 deletions

View File

@ -176,6 +176,7 @@ _policy_border_hide_below(E_Border *bd)
static void
_policy_border_show_below(E_Border *bd)
{
E_Border *prev;
int pos = 0, i;
// printf("Show Borders Below: %s %d %d\n",
@ -183,11 +184,9 @@ _policy_border_show_below(E_Border *bd)
if (bd->client.icccm.transient_for)
{
E_Border *trans;
if (trans = e_border_find_by_client_window(bd->client.icccm.transient_for))
if (prev = e_border_find_by_client_window(bd->client.icccm.transient_for))
{
_policy_border_set_focus(trans);
_policy_border_set_focus(prev);
return;
}
}
@ -239,8 +238,10 @@ _policy_border_show_below(E_Border *bd)
}
/* if we reach here, then there is a problem with showing a window below
* this one, so show home */
_policy_focus_home(bd->zone);
* this one, so show previous window in stack */
prev = eina_list_data_get(eina_list_last(_pol_focus_stack));
if (prev) _policy_border_set_focus(prev);
else _policy_focus_home(bd->zone);
}
static void