From 65002e1d17031b76ecc67bff809494c158566408 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Thu, 21 Apr 2016 18:25:49 -0700 Subject: [PATCH] Fix squished UI elements Stack bounds were wrong after moving all tasks from docked stack to fullscreen stack, if fullscreen stack was created while moving. This lead to very wrong bounds when rotating the screen the next time. Bug: 27870534 Change-Id: I6d054922ffc7baa7cd1a86d0d3448050cbacd21f --- services/core/java/com/android/server/wm/TaskStack.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java index 467f5b6b0cf57..dc04754204c59 100644 --- a/services/core/java/com/android/server/wm/TaskStack.java +++ b/services/core/java/com/android/server/wm/TaskStack.java @@ -645,9 +645,12 @@ public class TaskStack implements DimLayer.DimLayerUser, Rect bounds = null; final TaskStack dockedStack = mService.mStackIdToStack.get(DOCKED_STACK_ID); if (mStackId == DOCKED_STACK_ID - || (dockedStack != null && StackId.isResizeableByDockedStack(mStackId))) { + || (dockedStack != null && StackId.isResizeableByDockedStack(mStackId) + && !dockedStack.isFullscreen())) { // The existence of a docked stack affects the size of other static stack created since - // the docked stack occupies a dedicated region on screen. + // the docked stack occupies a dedicated region on screen, but only if the dock stack is + // not fullscreen. If it's fullscreen, it means that we are in the transition of + // dismissing it, so we must not resize this stack. bounds = new Rect(); displayContent.getLogicalDisplayRect(mTmpRect); mTmpRect2.setEmpty();