From b58a09a59e2ea99d6d30fcc83b656454eaf2c791 Mon Sep 17 00:00:00 2001 From: Tony Huang Date: Tue, 26 Oct 2021 15:43:42 +0800 Subject: [PATCH] Fix split black when enable in landscape We assume dismissing side should be DOCKED_INVALID when split active, however, if snap algorithm only have one target, it will get other side due to current algorithm. Fix this by correct algorithm and ensure dismissing side be DOCKED_INVALID when split active or layout. Fix: 203745267 Test: manual Test: pass existing tests Change-Id: I077a93472dad89bc620e490dcae5170e9a56279b --- .../src/com/android/wm/shell/common/split/SplitLayout.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java index 5b3ce2dbaeb94..b1b0382b401c3 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java @@ -565,11 +565,11 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mDismissingDimValue = 0; int totalDismissingDistance = 0; - if (position <= mDividerSnapAlgorithm.getFirstSplitTarget().position) { + if (position < mDividerSnapAlgorithm.getFirstSplitTarget().position) { mDismissingSide = isLandscape ? DOCKED_LEFT : DOCKED_TOP; totalDismissingDistance = mDividerSnapAlgorithm.getDismissStartTarget().position - mDividerSnapAlgorithm.getFirstSplitTarget().position; - } else if (position >= mDividerSnapAlgorithm.getLastSplitTarget().position) { + } else if (position > mDividerSnapAlgorithm.getLastSplitTarget().position) { mDismissingSide = isLandscape ? DOCKED_RIGHT : DOCKED_BOTTOM; totalDismissingDistance = mDividerSnapAlgorithm.getLastSplitTarget().position - mDividerSnapAlgorithm.getDismissEndTarget().position;