steamcompmgr: Don't skip taskbar+pager windows if they are fullscreen
Fixes fullscreen in Batman: Arkham City GOTY (200260)
This commit is contained in:
parent
60513c0925
commit
65d97cb152
1 changed files with 10 additions and 4 deletions
|
@ -2006,6 +2006,12 @@ win_skip_taskbar_and_pager( win *w )
|
||||||
return w->skipTaskbar && w->skipPager;
|
return w->skipTaskbar && w->skipPager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
win_skip_and_not_fullscreen( win *w )
|
||||||
|
{
|
||||||
|
return win_skip_taskbar_and_pager( w ) && !w->isFullscreen;
|
||||||
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
win_maybe_a_dropdown( win *w )
|
win_maybe_a_dropdown( win *w )
|
||||||
{
|
{
|
||||||
|
@ -2031,7 +2037,7 @@ win_maybe_a_dropdown( win *w )
|
||||||
// ie. a settings menu dialog popup or something.
|
// ie. a settings menu dialog popup or something.
|
||||||
// - If the window has both skip taskbar and pager, treat it as a dialog.
|
// - If the window has both skip taskbar and pager, treat it as a dialog.
|
||||||
bool valid_maybe_a_dropdown =
|
bool valid_maybe_a_dropdown =
|
||||||
w->maybe_a_dropdown && ( ( !w->is_dialog || ( !w->transientFor && win_skip_taskbar_and_pager( w ) ) ) && ( w->skipPager || w->skipTaskbar ) );
|
w->maybe_a_dropdown && ( ( !w->is_dialog || ( !w->transientFor && win_skip_and_not_fullscreen( w ) ) ) && ( w->skipPager || w->skipTaskbar ) );
|
||||||
return ( valid_maybe_a_dropdown || win_is_override_redirect( w ) ) && !win_is_useless( w );
|
return ( valid_maybe_a_dropdown || win_is_override_redirect( w ) ) && !win_is_useless( w );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2068,8 +2074,8 @@ is_focus_priority_greater( win *a, win *b )
|
||||||
|
|
||||||
// Wine sets SKIP_TASKBAR and SKIP_PAGER hints for WS_EX_NOACTIVATE windows.
|
// Wine sets SKIP_TASKBAR and SKIP_PAGER hints for WS_EX_NOACTIVATE windows.
|
||||||
// See https://github.com/Plagman/gamescope/issues/87
|
// See https://github.com/Plagman/gamescope/issues/87
|
||||||
if ( win_skip_taskbar_and_pager( a ) != win_skip_taskbar_and_pager( b ) )
|
if ( win_skip_and_not_fullscreen( a ) != win_skip_and_not_fullscreen( b ) )
|
||||||
return !win_skip_taskbar_and_pager( a );
|
return !win_skip_and_not_fullscreen( a );
|
||||||
|
|
||||||
// Prefer normal windows over dialogs
|
// Prefer normal windows over dialogs
|
||||||
// if we are an override redirect/dropdown window.
|
// if we are an override redirect/dropdown window.
|
||||||
|
@ -2537,7 +2543,7 @@ determine_and_apply_focus()
|
||||||
// Exclude windows that are useless (1x1), skip taskbar + pager or override redirect windows
|
// Exclude windows that are useless (1x1), skip taskbar + pager or override redirect windows
|
||||||
// from the reported focusable windows to Steam.
|
// from the reported focusable windows to Steam.
|
||||||
if ( win_is_useless( focusable_window ) ||
|
if ( win_is_useless( focusable_window ) ||
|
||||||
win_skip_taskbar_and_pager( focusable_window ) ||
|
win_skip_and_not_fullscreen( focusable_window ) ||
|
||||||
focusable_window->a.override_redirect )
|
focusable_window->a.override_redirect )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue