Merge "[wm]: Freeform window layout while SIP showing"

This commit is contained in:
TreeHugger Robot
2020-01-07 17:49:40 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 3 deletions

View File

@@ -2744,7 +2744,13 @@ class Task extends WindowContainer<WindowContainer> {
getDimBounds(mTmpDimBoundsRect);
// Bounds need to be relative, as the dim layer is a child.
mTmpDimBoundsRect.offsetTo(0, 0);
if (inFreeformWindowingMode()) {
getBounds(mTmpRect);
mTmpDimBoundsRect.offsetTo(mTmpDimBoundsRect.left - mTmpRect.left,
mTmpDimBoundsRect.top - mTmpRect.top);
} else {
mTmpDimBoundsRect.offsetTo(0, 0);
}
if (mDimmer.updateDims(getPendingTransaction(), mTmpDimBoundsRect)) {
scheduleAnimation();
}

View File

@@ -984,8 +984,11 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
final int layoutXDiff;
final int layoutYDiff;
final WindowState imeWin = mWmService.mRoot.getCurrentInputMethodWindow();
final boolean isInputMethodAdjustTarget = windowsAreFloating
? dc.mInputMethodTarget != null && task == dc.mInputMethodTarget.getTask()
: isInputMethodTarget();
final boolean isImeTarget =
imeWin != null && imeWin.isVisibleNow() && isInputMethodTarget();
imeWin != null && imeWin.isVisibleNow() && isInputMethodAdjustTarget;
if (isFullscreenAndFillsDisplay || layoutInParentFrame()) {
// We use the parent frame as the containing frame for fullscreen and child windows
mWindowFrames.mContainingFrame.set(mWindowFrames.mParentFrame);
@@ -1016,7 +1019,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
final int distanceToTop = Math.max(mWindowFrames.mContainingFrame.top
- mWindowFrames.mContentFrame.top, 0);
int offs = Math.min(bottomOverlap, distanceToTop);
mWindowFrames.mContainingFrame.top -= offs;
mWindowFrames.mContainingFrame.offset(0, -offs);
mInsetFrame.offset(0, -offs);
}
} else if (!inPinnedWindowingMode() && mWindowFrames.mContainingFrame.bottom
> mWindowFrames.mParentFrame.bottom) {