diff options
author | John Spurlock <jspurlock@google.com> | 2013-10-23 16:36:47 -0400 |
---|---|---|
committer | John Spurlock <jspurlock@google.com> | 2013-10-23 17:02:53 -0400 |
commit | 36439b43121751ae94e703da52b2763aa17d0720 (patch) | |
tree | 67daa5a65e42adc8d52f397402505d94d578f7e0 /services/java/com/android/server/InputMethodManagerService.java | |
parent | 871cb5d53f14ce6ead2c65ee3a4354e22276a169 (diff) |
Decouple IME_ACTIVE and IME_VISIBLE for hardware keyboards.
Reserve IME_VISIBLE for when software keyboards are actually
showing.
Bug:11186297
Change-Id: I4e09a7de353e564bd1a97dadd603d3104254fa56
Diffstat (limited to 'services/java/com/android/server/InputMethodManagerService.java')
-rw-r--r-- | services/java/com/android/server/InputMethodManagerService.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java index 794d274da5fa..562a50fafd1b 100644 --- a/services/java/com/android/server/InputMethodManagerService.java +++ b/services/java/com/android/server/InputMethodManagerService.java @@ -879,8 +879,12 @@ public class InputMethodManagerService extends IInputMethodManager.Stub final boolean isScreenSecurelyLocked = isScreenLocked && mKeyguardManager.isKeyguardSecure(); final boolean inputShown = mInputShown && (!isScreenLocked || mInputBoundToKeyguard); - mImeWindowVis = (!isScreenSecurelyLocked && (inputShown || hardKeyShown)) ? - (InputMethodService.IME_ACTIVE | InputMethodService.IME_VISIBLE) : 0; + final boolean inputActive = !isScreenSecurelyLocked && (inputShown || hardKeyShown); + // We assume the softkeyboard is shown when the input is active as long as the + // hard keyboard is not shown. + final boolean inputVisible = inputActive && !hardKeyShown; + mImeWindowVis = (inputActive ? InputMethodService.IME_ACTIVE : 0) + | (inputVisible ? InputMethodService.IME_VISIBLE : 0); updateImeWindowStatusLocked(); } |