From 5418d41626e45ede40e17885f94df4b4d2bb2977 Mon Sep 17 00:00:00 2001 From: Sylvain Becker Date: Tue, 18 Jun 2019 11:35:30 +0200 Subject: [PATCH] Android: prevent ignoring surfaceChanged() in MultiWindow --- .../src/main/java/org/libsdl/app/SDLActivity.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java b/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java index ff24ba801c2f0..fcdc1f8bfdb34 100644 --- a/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java +++ b/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java @@ -1739,6 +1739,8 @@ public void surfaceChanged(SurfaceHolder holder, SDLActivity.nativeSetScreenResolution(width, height, nDeviceWidth, nDeviceHeight, sdlFormat, mDisplay.getRefreshRate()); SDLActivity.onNativeResize(); + // Prevent a screen distortion glitch, + // for instance when the device is in Landscape and a Portrait App is resumed. boolean skip = false; int requestedOrientation = SDLActivity.mSingleton.getRequestedOrientation(); @@ -1768,6 +1770,16 @@ else if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT || req } } + // Don't skip in MultiWindow. + if (skip) { + if (Build.VERSION.SDK_INT >= 24) { + if (SDLActivity.mSingleton.isInMultiWindowMode()) { + Log.v("SDL", "Don't skip in Multi-Window"); + skip = false; + } + } + } + if (skip) { Log.v("SDL", "Skip .. Surface is not ready."); mIsSurfaceReady = false;