|
@@ -440,8 +440,16 @@ bool Window::setWindow(int width, int height, WindowSettings *settings)
|
|
|
|
|
|
Uint32 sdlflags = SDL_WINDOW_OPENGL;
|
|
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
|
|
#ifdef LOVE_ANDROID
|
|
|
|
+ bool fullscreen = f.fullscreen;
|
|
|
|
+
|
|
|
|
+ f.fullscreen = false;
|
|
f.fstype = FULLSCREEN_DESKTOP;
|
|
f.fstype = FULLSCREEN_DESKTOP;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -527,8 +535,11 @@ bool Window::setWindow(int width, int height, WindowSettings *settings)
|
|
graphics->setMode((int) scaledw, (int) scaledh, pixelWidth, pixelHeight, f.stencil);
|
|
graphics->setMode((int) scaledw, (int) scaledh, pixelWidth, pixelHeight, f.stencil);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // Set fullscreen when user requested it before.
|
|
|
|
+ // See above for explanation.
|
|
#ifdef LOVE_ANDROID
|
|
#ifdef LOVE_ANDROID
|
|
- love::android::setImmersive(f.fullscreen);
|
|
|
|
|
|
+ setFullscreen(fullscreen);
|
|
|
|
+ love::android::setImmersive(fullscreen);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
return true;
|
|
return true;
|