* commit '3370b6c95e153c3c665e38f6f9b5d105da2949d7': Calculate outsets before window frame adjustment.
This commit is contained in:
@@ -640,6 +640,16 @@ final class WindowState implements WindowManagerPolicy.WindowState {
|
|||||||
// Now make sure the window fits in the overall display frame.
|
// Now make sure the window fits in the overall display frame.
|
||||||
Gravity.applyDisplay(mAttrs.gravity, mDisplayFrame, mFrame);
|
Gravity.applyDisplay(mAttrs.gravity, mDisplayFrame, mFrame);
|
||||||
|
|
||||||
|
// Calculate the outsets before the content frame gets shrinked to the window frame.
|
||||||
|
if (hasOutsets) {
|
||||||
|
mOutsets.set(Math.max(mContentFrame.left - mOutsetFrame.left, 0),
|
||||||
|
Math.max(mContentFrame.top - mOutsetFrame.top, 0),
|
||||||
|
Math.max(mOutsetFrame.right - mContentFrame.right, 0),
|
||||||
|
Math.max(mOutsetFrame.bottom - mContentFrame.bottom, 0));
|
||||||
|
} else {
|
||||||
|
mOutsets.set(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
// Make sure the content and visible frames are inside of the
|
// Make sure the content and visible frames are inside of the
|
||||||
// final window frame.
|
// final window frame.
|
||||||
mContentFrame.set(Math.max(mContentFrame.left, mFrame.left),
|
mContentFrame.set(Math.max(mContentFrame.left, mFrame.left),
|
||||||
@@ -677,16 +687,6 @@ final class WindowState implements WindowManagerPolicy.WindowState {
|
|||||||
Math.max(mFrame.right - mStableFrame.right, 0),
|
Math.max(mFrame.right - mStableFrame.right, 0),
|
||||||
Math.max(mFrame.bottom - mStableFrame.bottom, 0));
|
Math.max(mFrame.bottom - mStableFrame.bottom, 0));
|
||||||
|
|
||||||
if (hasOutsets) {
|
|
||||||
// We need to calculate outsets
|
|
||||||
mOutsets.set(Math.max(mContentFrame.left - mOutsetFrame.left, 0),
|
|
||||||
Math.max(mContentFrame.top - mOutsetFrame.top, 0),
|
|
||||||
Math.max(mOutsetFrame.right - mContentFrame.right, 0),
|
|
||||||
Math.max(mOutsetFrame.bottom - mContentFrame.bottom, 0));
|
|
||||||
} else {
|
|
||||||
mOutsets.set(0, 0, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
mCompatFrame.set(mFrame);
|
mCompatFrame.set(mFrame);
|
||||||
if (mEnforceSizeCompat) {
|
if (mEnforceSizeCompat) {
|
||||||
// If there is a size compatibility scale being applied to the
|
// If there is a size compatibility scale being applied to the
|
||||||
|
|||||||
Reference in New Issue
Block a user