From 914c5d4940a91dc3b6a5110c07f3d54d7609264b Mon Sep 17 00:00:00 2001 From: Dorota Czaplejewicz Date: Tue, 15 Dec 2020 12:49:44 +0000 Subject: [PATCH] text input: Reset hints when text input gone This ensures that when the keyboard is force brought up next time, the user is not stuck with an overlay they can't switch. As a downside, there's a blink of default hint before the keyboard hides. --- src/imservice.rs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/imservice.rs b/src/imservice.rs index 462c4203..c5d03067 100644 --- a/src/imservice.rs +++ b/src/imservice.rs @@ -151,14 +151,19 @@ pub mod c { if active_changed { (imservice.active_callback)(imservice.current.active); - if imservice.current.active { - unsafe { - eekboard_context_service_set_hint_purpose( - imservice.state_manager, - imservice.current.content_hint.bits(), - imservice.current.content_purpose.clone() as u32, - ); - } + let (hint, purpose) = if imservice.current.active {( + imservice.current.content_hint, + imservice.current.content_purpose.clone(), + )} else {( + ContentHint::NONE, + ContentPurpose::Normal, + )}; + unsafe { + eekboard_context_service_set_hint_purpose( + imservice.state_manager, + hint.bits(), + purpose as u32, + ); } } }