Skip to content

Commit 5da601f

Browse files
committed
fix: IMS didn't workaround null cursor anchor info correctly
1 parent 8e62e01 commit 5da601f

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

app/src/main/java/com/osfans/trime/ime/core/TrimeInputMethodService.kt

+2-4
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ import com.osfans.trime.ime.keyboard.InitializationUi
5858
import com.osfans.trime.ime.keyboard.InputFeedbackManager
5959
import com.osfans.trime.ime.keyboard.KeyboardSwitcher
6060
import com.osfans.trime.receiver.RimeIntentReceiver
61+
import com.osfans.trime.util.any
6162
import com.osfans.trime.util.findSectionFrom
6263
import com.osfans.trime.util.forceShowSelf
6364
import com.osfans.trime.util.isNightMode
@@ -405,10 +406,7 @@ open class TrimeInputMethodService : LifecycleInputMethodService() {
405406
if (!decorLocationUpdated) {
406407
updateDecorLocation()
407408
}
408-
@Suppress("KotlinConstantConditions")
409-
// Any component of anchorPosition can be NaN,
410-
// meaning it will not equal itself!
411-
if (anchorPosition != anchorPosition) {
409+
if (anchorPosition.any(Float::isNaN)) {
412410
workaroundNullCursorAnchorInfo()
413411
return
414412
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2015 - 2025 Rime community
3+
* SPDX-License-Identifier: GPL-3.0-or-later
4+
*/
5+
6+
package com.osfans.trime.util
7+
8+
import android.graphics.RectF
9+
10+
inline fun RectF.any(predicate: (Float) -> Boolean): Boolean = predicate(left) || predicate(top) || predicate(right) || predicate(bottom)

0 commit comments

Comments
 (0)