Parcourir la source

Fixed keyboard being hidden while being shown on Android

Sam Lantinga il y a 2 semaines
Parent
commit
47d14491a6
1 fichiers modifiés avec 11 ajouts et 2 suppressions
  1. 11 2
      android-project/app/src/main/java/org/libsdl/app/SDLSurface.java

+ 11 - 2
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
     // Is SurfaceView ready for rendering
     protected boolean mIsSurfaceReady;
     protected boolean mIsSurfaceReady;
 
 
+    // Is on-screen keyboard visible
+    protected boolean mKeyboardVisible;
+
     // Pinch events
     // Pinch events
     private final ScaleGestureDetector scaleGestureDetector;
     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);
             SDLActivity.onNativeInsetsChanged(combined.left, combined.right, combined.top, combined.bottom);
 
 
             if (insets.isVisible(WindowInsets.Type.ime())) {
             if (insets.isVisible(WindowInsets.Type.ime())) {
-                SDLActivity.onNativeScreenKeyboardShown();
+                if (!mKeyboardVisible) {
+                    mKeyboardVisible = true;
+                    SDLActivity.onNativeScreenKeyboardShown();
+                }
             } else {
             } else {
-                SDLActivity.onNativeScreenKeyboardHidden();
+                if (mKeyboardVisible) {
+                    mKeyboardVisible = false;
+                    SDLActivity.onNativeScreenKeyboardHidden();
+                }
             }
             }
         }
         }