diff options
-rw-r--r-- | services/core/java/com/android/server/wm/AppWindowToken.java | 6 | ||||
-rw-r--r-- | services/core/java/com/android/server/wm/WindowState.java | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java index 839ee0ec7efd..b9d02a900d1c 100644 --- a/services/core/java/com/android/server/wm/AppWindowToken.java +++ b/services/core/java/com/android/server/wm/AppWindowToken.java @@ -1357,8 +1357,10 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree * @return {@code true} If all children have been considered, {@code false}. */ private boolean allDrawnStatesConsidered() { - for (WindowState child : mChildren) { - if (!child.getDrawnStatedEvaluated()) { + for (int i = mChildren.size() - 1; i >= 0; --i) { + final WindowState child = mChildren.get(i); + if (child.mightAffectAllDrawn(false /*visibleOnly*/ ) + && !child.getDrawnStateEvaluated()) { return false; } } diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 371753ffc86b..7decb11d777b 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -690,7 +690,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP /** * Returns whether this {@link WindowState} has been considered for drawing by its parent. */ - boolean getDrawnStatedEvaluated() { + boolean getDrawnStateEvaluated() { return mDrawnStateEvaluated; } @@ -3392,7 +3392,11 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP pw.print(prefix); pw.print("mAppToken="); pw.println(mAppToken); pw.print(prefix); pw.print(" isAnimatingWithSavedSurface()="); pw.print(isAnimatingWithSavedSurface()); - pw.print(" mAppDied=");pw.println(mAppDied); + pw.print(" mAppDied=");pw.print(mAppDied); + pw.print(prefix); pw.print("drawnStateEvaluated="); + pw.print(getDrawnStateEvaluated()); + pw.print(prefix); pw.print("mightAffectAllDrawn="); + pw.println(mightAffectAllDrawn(false /*visibleOnly*/)); } pw.print(prefix); pw.print("mViewVisibility=0x"); pw.print(Integer.toHexString(mViewVisibility)); @@ -3537,6 +3541,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP if (computeDragResizing()) { pw.print(prefix); pw.println("computeDragResizing=" + computeDragResizing()); } + pw.print(prefix); pw.println("isOnScreen=" + isOnScreen()); + pw.print(prefix); pw.println("isVisible=" + isVisible()); } @Override |