summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java3
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java29
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