summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/DisplayPolicy.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 442f70846118..7e91989a9105 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -1231,6 +1231,29 @@ public class DisplayPolicy {
}
inOutFrame.inset(win.mGivenContentInsets);
} : null, imeFrameProvider);
+ if (mNavigationBar == null && (insetsType == ITYPE_NAVIGATION_BAR
+ || insetsType == ITYPE_EXTRA_NAVIGATION_BAR)) {
+ mDisplayContent.setInsetProvider(ITYPE_LEFT_GESTURES, win,
+ (displayFrames, windowState, inOutFrame) -> {
+ final int leftSafeInset =
+ Math.max(displayFrames.mDisplayCutoutSafe.left,0);
+ inOutFrame.left = 0;
+ inOutFrame.top = 0;
+ inOutFrame.bottom = displayFrames.mDisplayHeight;
+ inOutFrame.right =
+ leftSafeInset + mLeftGestureInset;
+ });
+ mDisplayContent.setInsetProvider(ITYPE_RIGHT_GESTURES, win,
+ (displayFrames, windowState, inOutFrame) -> {
+ final int rightSafeInset =
+ Math.min(displayFrames.mDisplayCutoutSafe.right,
+ displayFrames.mUnrestricted.right);
+ inOutFrame.left = rightSafeInset - mRightGestureInset;
+ inOutFrame.top = 0;
+ inOutFrame.bottom = displayFrames.mDisplayHeight;
+ inOutFrame.right = displayFrames.mDisplayWidth;
+ });
+ }
mInsetsSourceWindowsExceptIme.add(win);
}
}