From ce3cc80aca6e2d7eab0865ba9e39d3ac5855794a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 4 Apr 2026 10:07:58 -0700 Subject: [PATCH] Send SDL_EVENT_SCREEN_KEYBOARD_HIDDEN when the keyboard is hidden on Android (cherry picked from commit fc2f4fcc225d0c61eb8155245b05fe8c0a01454b) --- .../app/src/main/java/org/libsdl/app/SDLSurface.java | 6 ++++++ src/video/SDL_video.c | 4 ++-- 2 files changed, 8 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 1579b73345..42eceb5096 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 @@ -208,6 +208,12 @@ public class SDLSurface extends SurfaceView implements SurfaceHolder.Callback, WindowInsets.Type.displayCutout()); SDLActivity.onNativeInsetsChanged(combined.left, combined.right, combined.top, combined.bottom); + + if (insets.isVisible(WindowInsets.Type.ime())) { + SDLActivity.onNativeScreenKeyboardShown(); + } else { + SDLActivity.onNativeScreenKeyboardHidden(); + } } // Pass these to any child views in case they need them diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 9f4b70e226..0e4eefe19b 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -5913,7 +5913,7 @@ bool SDL_ScreenKeyboardShown(SDL_Window *window) void SDL_SendScreenKeyboardShown(void) { - if (_this->screen_keyboard_shown) { + if (!_this || _this->screen_keyboard_shown) { return; } @@ -5929,7 +5929,7 @@ void SDL_SendScreenKeyboardShown(void) void SDL_SendScreenKeyboardHidden(void) { - if (!_this->screen_keyboard_shown) { + if (!_this || !_this->screen_keyboard_shown) { return; }