diff options
2 files changed, 19 insertions, 13 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java index 8a5a32dad726..40b83f00f3d1 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java @@ -822,7 +822,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin || (isStatusBarVisible && !isKeyguardVisibleAndOccluded); } relayoutParams.mIsCaptionVisible = showCaption; - + relayoutParams.mIsInsetSource = isAppHeader && !inFullImmersiveMode; if (isAppHeader) { if (TaskInfoKt.isTransparentCaptionBarAppearance(taskInfo)) { // If the app is requesting to customize the caption bar, allow input to fall @@ -847,7 +847,6 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin WindowInsets.Type.systemBars() & ~WindowInsets.Type.captionBar(), false /* ignoreVisibility */); relayoutParams.mCaptionTopPadding = systemBarInsets.top; - relayoutParams.mIsInsetSource = false; } // Report occluding elements as bounding rects to the insets system so that apps can // draw in the empty space in the center: diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java index 3a30c3974fc9..ce5cfd0bdc36 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java @@ -394,11 +394,11 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> final WindowDecorationInsets newInsets = new WindowDecorationInsets( mTaskInfo.token, mOwner, captionInsetsRect, boundingRects, - params.mInsetSourceFlags); + params.mInsetSourceFlags, params.mIsInsetSource); if (!newInsets.equals(mWindowDecorationInsets)) { // Add or update this caption as an insets source. mWindowDecorationInsets = newInsets; - mWindowDecorationInsets.addOrUpdate(wct); + mWindowDecorationInsets.update(wct); } } @@ -713,10 +713,11 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> final int captionHeight = loadDimensionPixelSize(mContext.getResources(), captionHeightId); final Rect captionInsets = new Rect(0, 0, 0, captionHeight); final WindowDecorationInsets newInsets = new WindowDecorationInsets(mTaskInfo.token, - mOwner, captionInsets, null /* boundingRets */, 0 /* flags */); + mOwner, captionInsets, null /* boundingRets */, 0 /* flags */, + true /* shouldAddCaptionInset */); if (!newInsets.equals(mWindowDecorationInsets)) { mWindowDecorationInsets = newInsets; - mWindowDecorationInsets.addOrUpdate(wct); + mWindowDecorationInsets.update(wct); } } @@ -819,21 +820,26 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> private final Rect mFrame; private final Rect[] mBoundingRects; private final @InsetsSource.Flags int mFlags; + private final boolean mShouldAddCaptionInset; private WindowDecorationInsets(WindowContainerToken token, Binder owner, Rect frame, - Rect[] boundingRects, @InsetsSource.Flags int flags) { + Rect[] boundingRects, @InsetsSource.Flags int flags, + boolean shouldAddCaptionInset) { mToken = token; mOwner = owner; mFrame = frame; mBoundingRects = boundingRects; mFlags = flags; + mShouldAddCaptionInset = shouldAddCaptionInset; } - void addOrUpdate(WindowContainerTransaction wct) { - wct.addInsetsSource(mToken, mOwner, INDEX, captionBar(), mFrame, mBoundingRects, - mFlags); - wct.addInsetsSource(mToken, mOwner, INDEX, mandatorySystemGestures(), mFrame, - mBoundingRects, 0 /* flags */); + void update(WindowContainerTransaction wct) { + if (mShouldAddCaptionInset) { + wct.addInsetsSource(mToken, mOwner, INDEX, captionBar(), mFrame, mBoundingRects, + mFlags); + wct.addInsetsSource(mToken, mOwner, INDEX, mandatorySystemGestures(), mFrame, + mBoundingRects, 0 /* flags */); + } } void remove(WindowContainerTransaction wct) { @@ -848,7 +854,8 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> return Objects.equals(mToken, that.mToken) && Objects.equals(mOwner, that.mOwner) && Objects.equals(mFrame, that.mFrame) && Objects.deepEquals(mBoundingRects, that.mBoundingRects) - && mFlags == that.mFlags; + && mFlags == that.mFlags + && mShouldAddCaptionInset == that.mShouldAddCaptionInset; } @Override |