From 9dde78f7da75291a6fa77fdaf016bfa256a666a8 Mon Sep 17 00:00:00 2001 From: tingna_sung Date: Mon, 6 Oct 2014 16:36:40 +0800 Subject: [PATCH] Avoid to skip app window due to un-assigned sending to bottom state while app window sort should assign value of WindowToken.sendingToBottom according to the state of this token is moved to top or bottom to avoid app window is skiped incorrectly due to sending to bottom state is un-assigned while app window sort and finding focus window. Change-Id: I190838d1d01ca229155d5176930178ab41335556 Signed-off-by: tingna_sung --- services/java/com/android/server/wm/Task.java | 6 ++++++ .../java/com/android/server/wm/WindowManagerService.java | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/services/java/com/android/server/wm/Task.java b/services/java/com/android/server/wm/Task.java index 13fdbc83b2cec..6dd89f5e08806 100644 --- a/services/java/com/android/server/wm/Task.java +++ b/services/java/com/android/server/wm/Task.java @@ -52,6 +52,12 @@ class Task { return false; } + void setSendingToBottom(boolean toBottom) { + for (int appTokenNdx = 0; appTokenNdx < mAppTokens.size(); appTokenNdx++) { + mAppTokens.get(appTokenNdx).sendingToBottom = toBottom; + } + } + @Override public String toString() { return "{taskId=" + taskId + " appTokens=" + mAppTokens + "}"; diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index eaa237ae5a616..217fdf7050bf3 100644 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -4806,6 +4806,9 @@ public class WindowManagerService extends IWindowManager.Stub displayContent.moveHomeStackBox(isHomeStackTask); } stack.moveTaskToTop(task); + if (mAppTransition.isTransitionSet()) { + task.setSendingToBottom(false); + } } } finally { Binder.restoreCallingIdentity(origId); @@ -4824,6 +4827,9 @@ public class WindowManagerService extends IWindowManager.Stub } final TaskStack stack = task.mStack; stack.moveTaskToBottom(task); + if (mAppTransition.isTransitionSet()) { + task.setSendingToBottom(true); + } moveStackWindowsLocked(stack.getDisplayContent()); } } finally {