diff options
author | 2017-07-13 02:24:53 +0000 | |
---|---|---|
committer | 2017-07-13 02:24:53 +0000 | |
commit | f0d0b22316d06b3fb9f954fefd3a70fefd1ef03c (patch) | |
tree | d777ea554084c3a52689c8c819ae7a1ccf1ed7dd | |
parent | 69ab8acd3e95cba438839135334919667bbff9ae (diff) | |
parent | 56234469266098353c57dc768dda0f2dcb179027 (diff) |
Merge "Do not gate updating allDrawn on all child WindowStates." into oc-dr1-dev am: 7968af4873
am: 5623446926
Change-Id: I011d8e543245d11d530b61746513bc2bb812e6ea
-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 |