fix ranges

This commit is contained in:
Evgeny @ SimpleX Chat
2026-04-01 22:52:57 +00:00
parent 483ac540a0
commit c2ae0d9937
@@ -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
}