diff options
| author | 2024-03-26 23:40:14 +0000 | |
|---|---|---|
| committer | 2024-03-26 23:40:14 +0000 | |
| commit | c9f99b39fef9f040ced49fd737479761ae5a9b3a (patch) | |
| tree | 0380a5514ce94ffcf305352437f3577c9f1107fb | |
| parent | de69b4a1e55f4b34c3546a101dcf94503fdb9843 (diff) | |
| parent | 70efd109bd309ae40b0a7025ce4cad954baafac0 (diff) | |
Merge "Do not consume motion events in the highlighted item" into main
| -rw-r--r-- | packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/GridDragDropState.kt | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/GridDragDropState.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/GridDragDropState.kt index 1adb3359b17f..e7bfee34e76a 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/GridDragDropState.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/GridDragDropState.kt @@ -34,10 +34,12 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.input.pointer.pointerInteropFilter import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.toOffset import androidx.compose.ui.unit.toSize @@ -235,6 +237,7 @@ fun Modifier.dragContainer( } /** Wrap LazyGrid item with additional modifier needed for drag and drop. */ +@OptIn(ExperimentalComposeUiApi::class) @ExperimentalFoundationApi @Composable fun LazyGridItemScope.DraggableItem( @@ -269,7 +272,11 @@ fun LazyGridItemScope.DraggableItem( Box(modifier) { Box(draggingModifier) { content(dragging) } AnimatedVisibility( - modifier = Modifier.matchParentSize(), + modifier = + Modifier.matchParentSize() + // Do not consume motion events in the highlighted item and pass them down to + // the content. + .pointerInteropFilter { false }, visible = (dragging || selected) && !dragDropState.isDraggingToRemove, enter = fadeIn(), exit = fadeOut() |