summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2013-08-08 14:59:00 -0700
committerCraig Mautner <cmautner@google.com>2013-08-09 14:32:58 -0700
commit8efb0a4d811fc18ac8ef32f7d597aa6fafb3acec (patch)
treea3870156344b972cc5cef2790009a044a99f6617
parent7a605df3137ee571dec855761c0cb15b28513d26 (diff)
downloadframeworks_base-8efb0a4d811fc18ac8ef32f7d597aa6fafb3acec.zip
frameworks_base-8efb0a4d811fc18ac8ef32f7d597aa6fafb3acec.tar.gz
frameworks_base-8efb0a4d811fc18ac8ef32f7d597aa6fafb3acec.tar.bz2
Add extra layout pass after draw finished.
Once content has been drawn another pass through layout is required to set mHasContent in the LogicalDisplay. Previously this pass was occuring because of a delayed animation step. When timing of that step changed that pass occurred before the draw completed. This is why Presentations were immediately displayed in jb-mr1 and not jb-mr2. Fixes bug 10154780. Change-Id: I0075c5a73d5cdf972e73fdd59c1fde46df64e245
-rw-r--r--services/java/com/android/server/wm/WindowStateAnimator.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java
index 6fa9cd0..73325cb 100644
--- a/services/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/java/com/android/server/wm/WindowStateAnimator.java
@@ -1272,6 +1272,11 @@ class WindowStateAnimator {
if (mIsWallpaper) {
mService.dispatchWallpaperVisibility(w, true);
}
+ // This draw means the difference between unique content and mirroring.
+ // Run another pass through performLayout to set mHasContent in the
+ // LogicalDisplay.
+ mAnimator.setPendingLayoutChanges(w.getDisplayId(),
+ WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM);
} else {
w.mOrientationChanging = false;
}