From 971f196d5429d6a4604a5529106c517db9b22b75 Mon Sep 17 00:00:00 2001 From: ganfra Date: Fri, 25 Sep 2026 18:48:58 +0200 Subject: [PATCH] Intercept clicks on every row in selection mode --- .../messages/impl/timeline/components/TimelineItemRow.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt index d547d823a8..3db8508617 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.layout.AlignmentLine import androidx.compose.ui.layout.Layout import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.Role import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.isTraversalGroup import androidx.compose.ui.semantics.semantics @@ -173,9 +174,12 @@ internal fun TimelineItemRow( } }, { - if (isSelectionModeActive && selectableEvent != null) { + if (isSelectionModeActive) { // In selection mode the whole row toggles selection. - Box(modifier = Modifier.clickable { onContentClick(selectableEvent) }) + Box(modifier = Modifier.clickable(enabled = selectionData.canBeSelected, role = Role.Checkbox) { + if(selectableEvent != null) + onContentClick(selectableEvent) + }) } }, ),