diff options
-rwxr-xr-x | services/java/com/android/server/wm/WindowManagerService.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index b18727b..1b3137e 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -8117,8 +8117,16 @@ public class WindowManagerService extends IWindowManager.Stub } } - private boolean mInLayout = false; private final void performLayoutAndPlaceSurfacesLocked() { + do { + mTraversalScheduled = false; + performLayoutAndPlaceSurfacesLockedLoop(); + mH.removeMessages(H.DO_TRAVERSAL); + } while (mTraversalScheduled); + } + + private boolean mInLayout = false; + private final void performLayoutAndPlaceSurfacesLockedLoop() { if (mInLayout) { if (DEBUG) { throw new RuntimeException("Recursive call!"); |