e: Fix fullscreen and focus
iconifying fullscreen windows during focus change seems to be a bad idea, as it triggers new focus events. - Make window fullscreen - Alt+Tab to new window - Alt+Tab back -> Window is still iconified Can only get fullscreen window back by doing uniconify Also switching desktops will result in a iconified window which the user must hunt down (ticket #1550). This should fix those issues. SVN revision: 77259
This commit is contained in:
parent
99f7820770
commit
f2b9c969af
|
@ -2197,6 +2197,11 @@ e_border_focus_set(E_Border *bd,
|
||||||
e_grabinput_focus(bd->client.win, E_FOCUS_METHOD_PASSIVE);
|
e_grabinput_focus(bd->client.win, E_FOCUS_METHOD_PASSIVE);
|
||||||
/* e_border_focus_set(bd, 1, 0); */
|
/* e_border_focus_set(bd, 1, 0); */
|
||||||
}
|
}
|
||||||
|
if (bd->was_fullscreen)
|
||||||
|
{
|
||||||
|
bd->need_fullscreen = 1;
|
||||||
|
bd->was_fullscreen = 0;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2235,7 +2240,8 @@ e_border_focus_set(E_Border *bd,
|
||||||
if ((!unfocus_is_parent) &&
|
if ((!unfocus_is_parent) &&
|
||||||
(!e_config->allow_above_fullscreen))
|
(!e_config->allow_above_fullscreen))
|
||||||
{
|
{
|
||||||
e_border_iconify(bd2);
|
e_border_unfullscreen(bd2);
|
||||||
|
bd2->was_fullscreen = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2296,7 +2302,10 @@ e_border_focus_set(E_Border *bd,
|
||||||
}
|
}
|
||||||
if ((!have_vis_child) &&
|
if ((!have_vis_child) &&
|
||||||
(!e_config->allow_above_fullscreen))
|
(!e_config->allow_above_fullscreen))
|
||||||
e_border_iconify(bd);
|
{
|
||||||
|
e_border_unfullscreen(bd);
|
||||||
|
bd->was_fullscreen = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2345,7 +2354,8 @@ e_border_focus_set(E_Border *bd,
|
||||||
}
|
}
|
||||||
if ((!unfocus_is_parent) && (!e_config->allow_above_fullscreen))
|
if ((!unfocus_is_parent) && (!e_config->allow_above_fullscreen))
|
||||||
{
|
{
|
||||||
e_border_iconify(bd_unfocus);
|
e_border_unfullscreen(bd_unfocus);
|
||||||
|
bd_unfocus->was_fullscreen = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -490,6 +490,7 @@ struct _E_Border
|
||||||
unsigned int need_shape_merge : 1;
|
unsigned int need_shape_merge : 1;
|
||||||
unsigned int need_shape_export : 1;
|
unsigned int need_shape_export : 1;
|
||||||
unsigned int fullscreen : 1;
|
unsigned int fullscreen : 1;
|
||||||
|
unsigned int was_fullscreen : 1;
|
||||||
unsigned int need_fullscreen : 1;
|
unsigned int need_fullscreen : 1;
|
||||||
unsigned int already_unparented : 1;
|
unsigned int already_unparented : 1;
|
||||||
unsigned int need_reparent : 1;
|
unsigned int need_reparent : 1;
|
||||||
|
|
Loading…
Reference in New Issue