From da957d534b6c9c2c36df29da9dbbf431a520aabe Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Thu, 26 Dec 2024 12:32:35 +0100 Subject: [PATCH] Keyboard doesn't draw behind button-navigation bars in landscape mode --- srcs/juloo.keyboard2/Keyboard2View.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java index 984f055..9c828ad 100644 --- a/srcs/juloo.keyboard2/Keyboard2View.java +++ b/srcs/juloo.keyboard2/Keyboard2View.java @@ -268,12 +268,19 @@ public class Keyboard2View extends View WindowMetrics metrics = ((WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE)) .getCurrentWindowMetrics(); - Insets insets = metrics.getWindowInsets().getInsets( - WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars() - | WindowInsets.Type.displayCutout()); - width = metrics.getBounds().width(); - _marginLeft = Math.max(_marginLeft, insets.left); - _marginRight = Math.max(_marginRight, insets.right); + WindowInsets wi = metrics.getWindowInsets(); + // Keyboard doesn't draw behind button-navigation bars in landscape mode + Insets navigationBarInsets = wi.getInsets(WindowInsets.Type.navigationBars()); + Insets insets = wi.getInsets( + WindowInsets.Type.statusBars() + | WindowInsets.Type.navigationBars() + | WindowInsets.Type.displayCutout() + | WindowInsets.Type.tappableElement() + | WindowInsets.Type.mandatorySystemGestures() + ); + width = metrics.getBounds().width() - navigationBarInsets.left - navigationBarInsets.right; + _marginLeft = Math.max(_marginLeft, insets.left - navigationBarInsets.left); + _marginRight = Math.max(_marginRight, insets.right - navigationBarInsets.right); _marginBottom += insets.bottom; } else