From 5c97184c3a92dd2a608fd031ab5c01574030777a Mon Sep 17 00:00:00 2001 From: Carrie Xu Date: Tue, 30 Oct 2012 17:28:39 +0800 Subject: [PATCH] Correct the target app token for input method window The root cause is: There is a defect in window manager service: When a new activity that can be ime target is added into window manager but the Z order of input method window don't need to be changed, then the target app token of input method window would not be updated to new one. This defect may cause that the layer of input method window is calculated incorrectly. The solution: Correct the target app token for input method window. Change-Id: I008311e3c9b1cf5fc320b614d8675c183c506d50 --- .../java/com/android/server/wm/WindowManagerService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 0466c15473f59..194c75025c75e 100644 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -1514,7 +1514,11 @@ public class WindowManagerService extends IWindowManager.Stub pos++; } if (pos >= N) { - // All is good! + // Z order is good. + // The IM target window may be changed, so update the mTargetAppToken. + if (imWin != null) { + imWin.mTargetAppToken = mInputMethodTarget.mAppToken; + } return false; } }