diff --git a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java index d1f54cea29..217a5583dd 100644 --- a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java +++ b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java @@ -415,14 +415,17 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler { @Override public void setSplitTaskSwipeRect(DeviceProfile dp, Rect outRect, StagedSplitBounds splitInfo, int desiredStagePosition) { - float diff; - float horizontalDividerDiff = splitInfo.visualDividerBounds.width() / 2f; + float topLeftTaskPercent = splitInfo.appsStackedVertically + ? splitInfo.topTaskPercent + : splitInfo.leftTaskPercent; + float dividerBarPercent = splitInfo.appsStackedVertically + ? splitInfo.dividerHeightPercent + : splitInfo.dividerWidthPercent; + if (desiredStagePosition == SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT) { - diff = outRect.height() * (1f - splitInfo.leftTaskPercent) + horizontalDividerDiff; - outRect.bottom -= diff; + outRect.bottom = outRect.top + (int) (outRect.height() * topLeftTaskPercent); } else { - diff = outRect.height() * splitInfo.leftTaskPercent + horizontalDividerDiff; - outRect.top += diff; + outRect.top += (int) (outRect.height() * (topLeftTaskPercent + dividerBarPercent)); } } diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java index 88c3bfe206..7e1cb256dc 100644 --- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java +++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java @@ -495,19 +495,24 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { public void setSplitTaskSwipeRect(DeviceProfile dp, Rect outRect, StagedSplitBounds splitInfo, int desiredStagePosition) { boolean isLandscape = dp.isLandscape; + float topLeftTaskPercent = splitInfo.appsStackedVertically + ? splitInfo.topTaskPercent + : splitInfo.leftTaskPercent; + float dividerBarPercent = splitInfo.appsStackedVertically + ? splitInfo.dividerHeightPercent + : splitInfo.dividerWidthPercent; + if (desiredStagePosition == SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT) { if (isLandscape) { - outRect.right = outRect.left + (int) (outRect.width() * splitInfo.leftTaskPercent); + outRect.right = outRect.left + (int) (outRect.width() * topLeftTaskPercent); } else { - outRect.bottom = outRect.top + (int) (outRect.height() * splitInfo.topTaskPercent); + outRect.bottom = outRect.top + (int) (outRect.height() * topLeftTaskPercent); } } else { if (isLandscape) { - outRect.left += (int) (outRect.width() * - (splitInfo.leftTaskPercent + splitInfo.dividerWidthPercent)); + outRect.left += (int) (outRect.width() * (topLeftTaskPercent + dividerBarPercent)); } else { - outRect.top += (int) (outRect.height() * - (splitInfo.topTaskPercent + splitInfo.dividerHeightPercent)); + outRect.top += (int) (outRect.height() * (topLeftTaskPercent + dividerBarPercent)); } } }