|
@@ -2887,6 +2887,8 @@ SDL_OnWindowFocusGained(SDL_Window * window)
|
|
|
static SDL_bool
|
|
|
ShouldMinimizeOnFocusLoss(SDL_Window * window)
|
|
|
{
|
|
|
+ const char *hint;
|
|
|
+
|
|
|
if (!(window->flags & SDL_WINDOW_FULLSCREEN) || window->is_destroying) {
|
|
|
return SDL_FALSE;
|
|
|
}
|
|
@@ -2902,12 +2904,21 @@ ShouldMinimizeOnFocusLoss(SDL_Window * window)
|
|
|
#ifdef __ANDROID__
|
|
|
{
|
|
|
extern SDL_bool Android_JNI_ShouldMinimizeOnFocusLoss(void);
|
|
|
- if (! Android_JNI_ShouldMinimizeOnFocusLoss()) {
|
|
|
+ if (!Android_JNI_ShouldMinimizeOnFocusLoss()) {
|
|
|
return SDL_FALSE;
|
|
|
}
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+ /* Real fullscreen windows should minimize on focus loss so the desktop video mode is restored */
|
|
|
+ hint = SDL_GetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS);
|
|
|
+ if (!hint || !*hint || SDL_strcasecmp(hint, "auto") == 0) {
|
|
|
+ if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP) {
|
|
|
+ return SDL_FALSE;
|
|
|
+ } else {
|
|
|
+ return SDL_TRUE;
|
|
|
+ }
|
|
|
+ }
|
|
|
return SDL_GetHintBoolean(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, SDL_FALSE);
|
|
|
}
|
|
|
|