Android: Fix changing orientation with t.window.fullscreen = true

Fixes love2d/love-android#196
This commit is contained in:
Miku AuahDark
2020-12-25 21:45:32 +08:00
parent fe23c16198
commit 9c4db00e94
+13 -2
View File
@@ -440,8 +440,16 @@ bool Window::setWindow(int width, int height, WindowSettings *settings)
Uint32 sdlflags = SDL_WINDOW_OPENGL;
// On Android we always must have fullscreen type FULLSCREEN_TYPE_DESKTOP
// On Android, disable fullscreen first on window creation so it's
// possible to change the orientation by specifying portait width and
// height, otherwise SDL will pick the current orientation dimensions when
// fullscreen flag is set. Don't worry, we'll set it back later when user
// also requested fullscreen after the window is created.
// See https://github.com/love2d/love-android/issues/196
#ifdef LOVE_ANDROID
bool fullscreen = f.fullscreen;
f.fullscreen = false;
f.fstype = FULLSCREEN_DESKTOP;
#endif
@@ -527,8 +535,11 @@ bool Window::setWindow(int width, int height, WindowSettings *settings)
graphics->setMode((int) scaledw, (int) scaledh, pixelWidth, pixelHeight, f.stencil);
}
// Set fullscreen when user requested it before.
// See above for explanation.
#ifdef LOVE_ANDROID
love::android::setImmersive(f.fullscreen);
setFullscreen(fullscreen);
love::android::setImmersive(fullscreen);
#endif
return true;