From f1d8f5f7fd9312248b2ffb45fd25cdaf50fb6b2f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 18 Jun 2018 13:14:00 -0700 Subject: [PATCH] Make certain we only hide system UI when we're fullscreen for real. (thanks Rachel!) --- .../app/src/main/java/org/libsdl/app/SDLActivity.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 2a1630001656f..3cf84c66286ca 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 @@ -444,6 +444,8 @@ public static void handleNativeExit() { protected static final int COMMAND_USER = 0x8000; + protected static boolean mFullscreenModeActive; + /** * This method is called by SDL if SDL did not handle a message itself. * This happens if a received message contains an unsupported command. @@ -495,11 +497,13 @@ public void handleMessage(Message msg) { window.getDecorView().setSystemUiVisibility(flags); window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); + SDLActivity.mFullscreenModeActive = true; } else { int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_VISIBLE; window.getDecorView().setSystemUiVisibility(flags); window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + SDLActivity.mFullscreenModeActive = false; } } } else { @@ -1129,7 +1133,7 @@ public void run() { }; public void onSystemUiVisibilityChange(int visibility) { - if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0 || (visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) { + if (SDLActivity.mFullscreenModeActive && (visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0 || (visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) { Handler handler = getWindow().getDecorView().getHandler(); if (handler != null) {