From fc2f4fcc225d0c61eb8155245b05fe8c0a01454b Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sat, 4 Apr 2026 10:07:58 -0700
Subject: [PATCH] Send SDL_EVENT_SCREEN_KEYBOARD_HIDDEN when the keyboard is
hidden on Android
---
.../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 1579b7334539a..42eceb5096991 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 WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
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 a338645c96732..764eee219d0dd 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -5900,7 +5900,7 @@ bool SDL_ScreenKeyboardShown(SDL_Window *window)
void SDL_SendScreenKeyboardShown(void)
{
- if (_this->screen_keyboard_shown) {
+ if (!_this || _this->screen_keyboard_shown) {
return;
}
@@ -5916,7 +5916,7 @@ void SDL_SendScreenKeyboardShown(void)
void SDL_SendScreenKeyboardHidden(void)
{
- if (!_this->screen_keyboard_shown) {
+ if (!_this || !_this->screen_keyboard_shown) {
return;
}