Loading services/core/java/com/android/server/wm/WindowState.java +12 −1 Original line number Diff line number Diff line Loading @@ -409,7 +409,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP final Rect mContainingFrame = new Rect(); private final Rect mParentFrame = new Rect(); final Rect mParentFrame = new Rect(); /** Whether the parent frame would have been different if there was no display cutout. */ private boolean mParentFrameWasClippedByDisplayCutout; Loading Loading @@ -931,6 +931,17 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP mContainingFrame.set(contentFrame); } } final TaskStack stack = getStack(); if (inPinnedWindowingMode() && stack != null && stack.lastAnimatingBoundsWasToFullscreen()) { // PIP edge case: When going from pinned to fullscreen, we apply a // tempInsetFrame for the full task - but we're still at the start of the animation. // To prevent a jump if there's a letterbox, restrict to the parent frame. mInsetFrame.intersectUnchecked(parentFrame); mContainingFrame.intersectUnchecked(parentFrame); } mDisplayFrame.set(mContainingFrame); layoutXDiff = !mInsetFrame.isEmpty() ? mInsetFrame.left - mContainingFrame.left : 0; layoutYDiff = !mInsetFrame.isEmpty() ? mInsetFrame.top - mContainingFrame.top : 0; Loading services/core/java/com/android/server/wm/WindowStateAnimator.java +7 −0 Original line number Diff line number Diff line Loading @@ -927,6 +927,13 @@ class WindowStateAnimator { mTmpSourceBounds.inset(mWin.mLastRelayoutContentInsets); allowStretching = true; } // Make sure that what we're animating to and from is actually the right size in case // the window cannot take up the full screen. mTmpStackBounds.intersectUnchecked(w.mParentFrame); mTmpSourceBounds.intersectUnchecked(w.mParentFrame); mTmpAnimatingBounds.intersectUnchecked(w.mParentFrame); if (!mTmpSourceBounds.isEmpty()) { // Get the final target stack bounds, if we are not animating, this is just the // current stack bounds Loading Loading
services/core/java/com/android/server/wm/WindowState.java +12 −1 Original line number Diff line number Diff line Loading @@ -409,7 +409,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP final Rect mContainingFrame = new Rect(); private final Rect mParentFrame = new Rect(); final Rect mParentFrame = new Rect(); /** Whether the parent frame would have been different if there was no display cutout. */ private boolean mParentFrameWasClippedByDisplayCutout; Loading Loading @@ -931,6 +931,17 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP mContainingFrame.set(contentFrame); } } final TaskStack stack = getStack(); if (inPinnedWindowingMode() && stack != null && stack.lastAnimatingBoundsWasToFullscreen()) { // PIP edge case: When going from pinned to fullscreen, we apply a // tempInsetFrame for the full task - but we're still at the start of the animation. // To prevent a jump if there's a letterbox, restrict to the parent frame. mInsetFrame.intersectUnchecked(parentFrame); mContainingFrame.intersectUnchecked(parentFrame); } mDisplayFrame.set(mContainingFrame); layoutXDiff = !mInsetFrame.isEmpty() ? mInsetFrame.left - mContainingFrame.left : 0; layoutYDiff = !mInsetFrame.isEmpty() ? mInsetFrame.top - mContainingFrame.top : 0; Loading
services/core/java/com/android/server/wm/WindowStateAnimator.java +7 −0 Original line number Diff line number Diff line Loading @@ -927,6 +927,13 @@ class WindowStateAnimator { mTmpSourceBounds.inset(mWin.mLastRelayoutContentInsets); allowStretching = true; } // Make sure that what we're animating to and from is actually the right size in case // the window cannot take up the full screen. mTmpStackBounds.intersectUnchecked(w.mParentFrame); mTmpSourceBounds.intersectUnchecked(w.mParentFrame); mTmpAnimatingBounds.intersectUnchecked(w.mParentFrame); if (!mTmpSourceBounds.isEmpty()) { // Get the final target stack bounds, if we are not animating, this is just the // current stack bounds Loading