mirror of https://github.com/encounter/SDL.git
Don't minimize by default when in fullscreen desktop mode.
This fixes behavior with the new Mac OS X fullscreen space code, as well as improve behavior on Linux desktops. The default for normal fullscreen mode is still to minimize because we're likely doing a mode switch and don't want to stick around as a borderless window in the background.
This commit is contained in:
parent
4c1322f693
commit
2ceeb74e25
|
@ -2134,8 +2134,22 @@ SDL_OnWindowFocusGained(SDL_Window * window)
|
||||||
SDL_UpdateWindowGrab(window);
|
SDL_UpdateWindowGrab(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
static SDL_bool ShouldMinimizeOnFocusLoss()
|
static SDL_bool
|
||||||
|
ShouldMinimizeOnFocusLoss(SDL_Window * window)
|
||||||
{
|
{
|
||||||
|
SDL_bool default_minimize;
|
||||||
|
|
||||||
|
if (!(window->flags & SDL_WINDOW_FULLSCREEN)) {
|
||||||
|
return SDL_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) {
|
||||||
|
/* We're not doing a mode switch, so it's okay to stay around */
|
||||||
|
default_minimize = SDL_FALSE;
|
||||||
|
} else {
|
||||||
|
default_minimize = SDL_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
const char *hint = SDL_GetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS);
|
const char *hint = SDL_GetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS);
|
||||||
if (hint) {
|
if (hint) {
|
||||||
if (*hint == '0') {
|
if (*hint == '0') {
|
||||||
|
@ -2144,7 +2158,8 @@ static SDL_bool ShouldMinimizeOnFocusLoss()
|
||||||
return SDL_TRUE;
|
return SDL_TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return SDL_TRUE;
|
|
||||||
|
return default_minimize;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -2156,8 +2171,7 @@ SDL_OnWindowFocusLost(SDL_Window * window)
|
||||||
|
|
||||||
SDL_UpdateWindowGrab(window);
|
SDL_UpdateWindowGrab(window);
|
||||||
|
|
||||||
/* If we're fullscreen and lose focus, minimize unless the hint tells us otherwise */
|
if (ShouldMinimizeOnFocusLoss(window)) {
|
||||||
if ((window->flags & SDL_WINDOW_FULLSCREEN) && ShouldMinimizeOnFocusLoss()) {
|
|
||||||
SDL_MinimizeWindow(window);
|
SDL_MinimizeWindow(window);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue