From 6f731e48d2151219b274bfff315675ca1c792779 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Wed, 6 May 2026 12:48:15 -0700 Subject: [PATCH] Hide keyboard on app resume --- src/app/util/keyboard.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/app/util/keyboard.ts b/src/app/util/keyboard.ts index 8c1c6672..b1fd3eea 100644 --- a/src/app/util/keyboard.ts +++ b/src/app/util/keyboard.ts @@ -1,3 +1,4 @@ +import {App} from "@capacitor/app" import {Capacitor} from "@capacitor/core" import {Keyboard} from "@capacitor/keyboard" import {noop} from "@welshman/lib" @@ -13,9 +14,16 @@ export const syncKeyboard = () => { document.body.classList.remove("keyboard-open") }) + // On Android, system-dismissing the IME during pause doesn't fire keyboardWillHide, + // so on resume we force a hide to re-sync native insets and clear our CSS state. + const resumeListener = App.addListener("appStateChange", ({isActive}) => { + if (isActive) Keyboard.hide() + }) + return () => { showListener.then(listener => listener.remove()) hideListener.then(listener => listener.remove()) + resumeListener.then(listener => listener.remove()) document.body.classList.remove("keyboard-open") } }