grouping gesture events can help....
One approach is to capture the first down event and then consume any additional pointer events.
fun Modifier.disableMultiTouch() = pointerInput(Unit) {
awaitEachGesture {
// Wait for the first down event.
val firstDown = awaitFirstDown(requireUnconsumed = false)
// While any pointer is still pressed, consume extra ones.
do {
val event = awaitPointerEvent()
event.changes.filter { it.id != firstDown.id && it.pressed }
.forEach { it.consume() }
} while (event.changes.any { it.pressed })
}
}