diff options
author | Satoshi Kataoka <satok@google.com> | 2012-11-19 17:30:40 +0900 |
---|---|---|
committer | satok <satok@google.com> | 2012-11-20 11:12:07 +0900 |
commit | 8d03305b576e429909e420c235163c2be1aae732 (patch) | |
tree | 3987816d6a5f0a30adaadc24d9ba358fcb7fcbe0 /services/java/com/android/server/InputMethodManagerService.java | |
parent | 2656abe09895088eca25caafc3e92869217d1447 (diff) | |
download | frameworks_base-8d03305b576e429909e420c235163c2be1aae732.zip frameworks_base-8d03305b576e429909e420c235163c2be1aae732.tar.gz frameworks_base-8d03305b576e429909e420c235163c2be1aae732.tar.bz2 |
Hide current soft input when a background user gains window focus.
Bug: 7507226
Change-Id: If58f68469e21eaaba8536c4b54b3aa8cf8c08eb5
Diffstat (limited to 'services/java/com/android/server/InputMethodManagerService.java')
-rw-r--r-- | services/java/com/android/server/InputMethodManagerService.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java index da6f1fa..c10dd45 100644 --- a/services/java/com/android/server/InputMethodManagerService.java +++ b/services/java/com/android/server/InputMethodManagerService.java @@ -1814,9 +1814,9 @@ public class InputMethodManagerService extends IInputMethodManager.Stub public InputBindResult windowGainedFocus(IInputMethodClient client, IBinder windowToken, int controlFlags, int softInputMode, int windowFlags, EditorInfo attribute, IInputContext inputContext) { - if (!calledFromValidUser()) { - return null; - } + // Needs to check the validity before clearing calling identity + final boolean calledFromValidUser = calledFromValidUser(); + InputBindResult res = null; long ident = Binder.clearCallingIdentity(); try { @@ -1846,6 +1846,14 @@ public class InputMethodManagerService extends IInputMethodManager.Stub } catch (RemoteException e) { } + if (!calledFromValidUser) { + Slog.w(TAG, "A background user is requesting window. Hiding IME."); + Slog.w(TAG, "If you want to interect with IME, you need " + + "android.permission.INTERACT_ACROSS_USERS_FULL"); + hideCurrentInputLocked(0, null); + return null; + } + if (mCurFocusedWindow == windowToken) { Slog.w(TAG, "Window already focused, ignoring focus gain of: " + client + " attribute=" + attribute + ", token = " + windowToken); |