Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7865c35a authored by Darrell Shi's avatar Darrell Shi Committed by Android (Google) Code Review
Browse files

Merge "Disable grid scroll when dragging a widget" into main

parents 4fe7b345 87c5c79f
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -760,10 +760,12 @@ fun calculateWidgetSize(
private fun HorizontalGridWrapper(
    minContentPadding: PaddingValues,
    gridState: LazyGridState,
    dragDropState: GridDragDropState?,
    setContentOffset: (offset: Offset) -> Unit,
    modifier: Modifier = Modifier,
    content: LazyGridScope.(sizeInfo: SizeInfo?) -> Unit,
) {
    val isDragging = dragDropState?.draggingItemKey != null
    if (communalResponsiveGrid()) {
        val flingBehavior =
            rememberSnapFlingBehavior(lazyGridState = gridState, snapPosition = SnapPosition.Start)
@@ -776,6 +778,10 @@ private fun HorizontalGridWrapper(
            minHorizontalArrangement = Dimensions.ItemSpacing,
            minVerticalArrangement = Dimensions.ItemSpacing,
            setContentOffset = setContentOffset,
            // Temporarily disable user gesture scrolling while dragging a widget to prevent
            // conflicts between the drag and scroll gestures. Programmatic scrolling remains
            // enabled to allow dragging a widget beyond the visible boundaries.
            userScrollEnabled = !isDragging,
            content = content,
        )
    } else {
@@ -794,6 +800,10 @@ private fun HorizontalGridWrapper(
            contentPadding = minContentPadding,
            horizontalArrangement = Arrangement.spacedBy(Dimensions.ItemSpacing),
            verticalArrangement = Arrangement.spacedBy(Dimensions.ItemSpacing),
            // Temporarily disable user gesture scrolling while dragging a widget to prevent
            // conflicts between the drag and scroll gestures. Programmatic scrolling remains
            // enabled to allow dragging a widget beyond the visible boundaries.
            userScrollEnabled = !isDragging,
        ) {
            content(null)
        }
@@ -863,6 +873,7 @@ private fun BoxScope.CommunalHubLazyGrid(
    HorizontalGridWrapper(
        modifier = gridModifier,
        gridState = gridState,
        dragDropState = dragDropState,
        minContentPadding = minContentPadding,
        setContentOffset = setContentOffset,
    ) { sizeInfo ->