summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYohei Yukawa <yukawa@google.com>2014-06-11 01:56:12 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-06-10 22:29:12 +0000
commit04fcf1cabec82b7f2e349658ca764939f5641cc3 (patch)
tree88a48f442e9cde6de004834d7e8cea111b20df34
parent65c64c31abaeca044fd997df6f0787dddc611a68 (diff)
parent1ee99c4627eeae1a94ada9a884a76b726cf6ca4c (diff)
downloadframeworks_base-04fcf1cabec82b7f2e349658ca764939f5641cc3.zip
frameworks_base-04fcf1cabec82b7f2e349658ca764939f5641cc3.tar.gz
frameworks_base-04fcf1cabec82b7f2e349658ca764939f5641cc3.tar.bz2
Merge "Show IME-related system IME dialogs over windows owned by the IME"
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 2a5dbb4..c5d7a54 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -1484,10 +1484,15 @@ public class WindowManagerService extends IWindowManager.Stub
if (pos >= 0) {
final AppWindowToken targetAppToken = mInputMethodTarget.mAppToken;
- if (pos < windows.size()) {
- WindowState wp = windows.get(pos);
- if (wp == mInputMethodWindow) {
- pos++;
+ // Skip windows owned by the input method.
+ if (mInputMethodWindow != null) {
+ while (pos < windows.size()) {
+ WindowState wp = windows.get(pos);
+ if (wp == mInputMethodWindow || wp.mAttachedWindow == mInputMethodWindow) {
+ pos++;
+ continue;
+ }
+ break;
}
}
if (DEBUG_INPUT_METHOD) Slog.v(TAG, "Adding " + N + " dialogs at pos=" + pos);