From d1218e8d2e9aa1cf83cad67d927cdc07b2113295 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Tue, 11 Jul 2023 23:03:16 +0200 Subject: [PATCH] Disable horizontal pager scrolling in widget edit mode --- .../java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt index 1ab38430..9829bcf3 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt @@ -465,6 +465,7 @@ fun PagerScaffold( pagerState, widgetsScrollState, reversePager = reverse, + disablePager = isWidgetEditMode, ) .verticalScroll(widgetsScrollState, enabled = false) .windowInsetsPadding(WindowInsets.safeDrawing) @@ -649,6 +650,7 @@ fun Modifier.pagerScaffoldScrollHandler( scrollableState: ScrollableState, reversePager: Boolean = false, reverseScroll: Boolean = false, + disablePager: Boolean = false, ) = composed { val scope = rememberCoroutineScope() val flingBehavior = ScrollableDefaults.flingBehavior() @@ -656,7 +658,7 @@ fun Modifier.pagerScaffoldScrollHandler( val touchSlopSq = LocalViewConfiguration.current.touchSlop.pow(2) this .nestedScroll(DefaultNestedScrollConnection, nestedScrollDispatcher) - .pointerInput(scrollableState, pagerState, reversePager, reverseScroll) { + .pointerInput(scrollableState, pagerState, reversePager, reverseScroll, disablePager) { val velocityTracker = VelocityTracker() val lockScrollThreshold = 200.dp.toPx() val pagerMultiplier = if (reversePager) 1f else -1f @@ -665,7 +667,7 @@ fun Modifier.pagerScaffoldScrollHandler( awaitEachGesture { var overSlop = false - var lockedInScroll = false + var lockedInScroll = disablePager val initialDown = awaitFirstDown(requireUnconsumed = false, pass = PointerEventPass.Initial) val down = if (scrollableState.isScrollInProgress || pagerState.isScrollInProgress) { overSlop = true