From ef57d84479b2e5de5aa0c95f9f2bc44d286b4fae Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Sat, 4 Apr 2026 17:01:29 +0100 Subject: [PATCH] desktop: fix chat view processing all mouse move events --- .../kotlin/chat/simplex/common/views/chat/TextSelection.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/TextSelection.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/TextSelection.kt index 4a186f3c3d..4447bf9da2 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/TextSelection.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/TextSelection.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.border import androidx.compose.foundation.clickable import androidx.compose.foundation.focusable import androidx.compose.foundation.gestures.awaitEachGesture +import androidx.compose.foundation.gestures.awaitFirstDown import androidx.compose.foundation.gestures.scrollBy import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyListState @@ -339,8 +340,9 @@ fun BoxScope.SelectionHandler( } .pointerInput(manager) { awaitEachGesture { - val initialEvent = awaitPointerEvent(PointerEventPass.Initial).changes.first() - if (!initialEvent.pressed) return@awaitEachGesture + var initialEvent: PointerInputChange + // Wait for press, skip hovers + do { initialEvent = awaitPointerEvent(PointerEventPass.Initial).changes.first() } while (!initialEvent.pressed) val localStart = initialEvent.position val windowStart = localStart + manager.viewportPosition if (manager.selectionState == SelectionState.Selected) initialEvent.consume()