From ee2bebbace0e3605dee846db19f4359654dbd97f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 25 Apr 2026 17:10:54 -0700 Subject: [PATCH] Fixed keyboard being hidden while being shown on Android (cherry picked from commit 47d14491a6e89322b2a649cdbfb854fccce12cd3) --- .../src/main/java/org/libsdl/app/SDLSurface.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/android-project/app/src/main/java/org/libsdl/app/SDLSurface.java b/android-project/app/src/main/java/org/libsdl/app/SDLSurface.java index 42eceb5096..dedc00b78a 100644 --- a/android-project/app/src/main/java/org/libsdl/app/SDLSurface.java +++ b/android-project/app/src/main/java/org/libsdl/app/SDLSurface.java @@ -45,6 +45,9 @@ public class SDLSurface extends SurfaceView implements SurfaceHolder.Callback, // Is SurfaceView ready for rendering protected boolean mIsSurfaceReady; + // Is on-screen keyboard visible + protected boolean mKeyboardVisible; + // Pinch events private final ScaleGestureDetector scaleGestureDetector; @@ -210,9 +213,15 @@ public class SDLSurface extends SurfaceView implements SurfaceHolder.Callback, SDLActivity.onNativeInsetsChanged(combined.left, combined.right, combined.top, combined.bottom); if (insets.isVisible(WindowInsets.Type.ime())) { - SDLActivity.onNativeScreenKeyboardShown(); + if (!mKeyboardVisible) { + mKeyboardVisible = true; + SDLActivity.onNativeScreenKeyboardShown(); + } } else { - SDLActivity.onNativeScreenKeyboardHidden(); + if (mKeyboardVisible) { + mKeyboardVisible = false; + SDLActivity.onNativeScreenKeyboardHidden(); + } } }