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 738a107652..824c4f4166 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 @@ -145,15 +145,15 @@ fun selectedRange(range: SelectionRange?, index: Int): IntRange? { if (index < lo || index > hi) return null return when { index == r.startIndex && index == r.endIndex -> - if (r.startOffset < 0 || r.endOffset < 0) null - else minOf(r.startOffset, r.endOffset) .. maxOf(r.startOffset, r.endOffset) + if (r.startOffset < 0 || r.endOffset < 0 || r.startOffset == r.endOffset) null + else minOf(r.startOffset, r.endOffset) .. (maxOf(r.startOffset, r.endOffset) - 1) index == r.startIndex -> if (r.startOffset < 0) null else if (r.startIndex > r.endIndex) r.startOffset until Int.MAX_VALUE - else 0 .. r.startOffset + else 0 until r.startOffset index == r.endIndex -> if (r.endOffset < 0) null - else if (r.endIndex < r.startIndex) 0 .. r.endOffset + else if (r.endIndex < r.startIndex) 0 until r.endOffset else r.endOffset until Int.MAX_VALUE else -> 0 until Int.MAX_VALUE }