You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
IME: keyboard starts in float mode after switching keyboards — docked choice doesn't survive (Heide, pre-v0.1.22) #73
Heide (before testing v0.1.22, i.e. on v0.1.21 which introduced #64's mode persistence):
"Oh yeah, I forgot about the docking issue. The IME still starts in float mode, then you have to tap on dock. Then it's fine unless you switch keyboards."
Not fixed by v0.1.22 (its IME changes are output batching + force-show only). Lifecycle holes in the #64 restore machinery, found by inspection:
onCreateInputView can run again on a LIVE instance (configuration change; some OEM IME-switch flows keep the service alive): createEngine() builds a second engine (the first keeps its dasher_frame loop — both submit into the same canvas), and a stale floating=true makes the posted restore early-return inside enterFloatingMode() — a dead overlay canvas presents as "floating" over a full-height docked root. Tap Dock → clean; switch keyboards → repeats.
No onUnbindInput cleanup — a surviving service leaves the overlay hovering over the next keyboard.
exitFloatingMode returns early when floatingView == null — a swallowed removeView failure strands a dead overlay over every subsequent show.
Manual repro needed on Heide's device (Samsung, Android 16) to confirm which path she hits; the fix hardens all three.
Activity