From 7641e817e55cb88130f0d9ece7de24067c0b4d06 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Tue, 25 Nov 2014 18:59:45 -0800 Subject: [PATCH] Force additional layout pass after drawing If AppWindowToken.allDrawn is changed from true to false an additional layout pass is required to change WindowStateAnimator. mDrawState from READ_TO_SHOW to HAS_DRAWN. Fixes bug 18456175 Change-Id: Iddac657e5303a4154309889417374c0c6994c4df --- .../core/java/com/android/server/wm/WindowManagerService.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index bcfd7f00cea84..1439509f59d3c 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -9539,6 +9539,9 @@ public class WindowManagerService extends IWindowManager.Stub + " interesting=" + numInteresting + " drawn=" + wtoken.numDrawnWindows); wtoken.allDrawn = true; + // Force an additional layout pass where WindowStateAnimator# + // commitFinishDrawingLocked() will call performShowLocked(). + displayContent.layoutNeeded = true; mH.obtainMessage(H.NOTIFY_ACTIVITY_DRAWN, wtoken.token).sendToTarget(); } }