Update stack bounds for fullscreen if rotated after updateDisplayInfo

Rotation could change again after updateDisplayInfo is called. We
need to set stack bounds even for fullscreen stacks in this case.
Otherwise the bounds will be incorrect until it's rotated again.

bug: 28611814
Change-Id: I31289524a9ceacaaaa66924e9bf6cbe88fd83f99
This commit is contained in:
Chong Zhang
2016-05-13 11:04:38 -07:00
parent a63e1325b5
commit ccc335cfc7

View File

@@ -383,12 +383,6 @@ public class TaskStack implements DimLayer.DimLayerUser,
}
private boolean updateBoundsAfterConfigChange() {
if (mFullscreen) {
// Bounds will already be set correctly when display info is updated in the case of
// fullscreen.
return false;
}
final int newRotation = getDisplayInfo().rotation;
final int newDensity = getDisplayInfo().logicalDensityDpi;
@@ -397,6 +391,13 @@ public class TaskStack implements DimLayer.DimLayerUser,
return false;
}
if (mFullscreen) {
// Update stack bounds again since rotation changed since updateDisplayInfo().
setBounds(null);
// Return false since we don't need the client to resize.
return false;
}
final int oldDockSide = mStackId == DOCKED_STACK_ID ? getDockSide() : DOCKED_INVALID;
mTmpRect2.set(mBounds);
mDisplayContent.rotateBounds(mRotation, newRotation, mTmpRect2);