Skip to content

Commit 0524a7b

Browse files
if-canBambooin
authored andcommitted
fix: force show mode, candidates and window components show simultaneously (temp)
1 parent b771710 commit 0524a7b

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

app/src/main/java/com/osfans/trime/ime/bar/QuickBar.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import com.osfans.trime.ime.bar.ui.SuggestionUi
2525
import com.osfans.trime.ime.bar.ui.TabUi
2626
import com.osfans.trime.ime.broadcast.InputBroadcastReceiver
2727
import com.osfans.trime.ime.candidates.CandidateModule
28+
import com.osfans.trime.ime.candidates.popup.PopupCandidatesMode
2829
import com.osfans.trime.ime.candidates.unrolled.window.FlexboxUnrolledCandidateWindow
2930
import com.osfans.trime.ime.core.TrimeInputMethodService
3031
import com.osfans.trime.ime.dependency.InputScope
@@ -154,7 +155,12 @@ class QuickBar(
154155
candidateUi.unrollButton.visibility = if (enabled) View.VISIBLE else View.INVISIBLE
155156
}
156157

158+
private val candidatesMode by AppPrefs.defaultInstance().candidates.mode
159+
157160
override fun onInputContextUpdate(ctx: RimeProto.Context) {
161+
// TODO: 临时修复状态栏与悬浮窗同时显示,后续需优化:考虑分离数据或寻找更好的实现方式
162+
if (candidatesMode == PopupCandidatesMode.FORCE_SHOW) return
163+
158164
barStateMachine.push(
159165
QuickBarStateMachine.TransitionEvent.CandidatesUpdated,
160166
QuickBarStateMachine.BooleanKey.CandidateEmpty to ctx.menu.candidates.isEmpty(),

app/src/main/java/com/osfans/trime/ime/composition/PreeditModule.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@ import android.widget.PopupWindow
1616
import com.osfans.trime.core.RimeProto
1717
import com.osfans.trime.daemon.RimeSession
1818
import com.osfans.trime.daemon.launchOnReady
19+
import com.osfans.trime.data.prefs.AppPrefs
1920
import com.osfans.trime.data.theme.ColorManager
2021
import com.osfans.trime.data.theme.Theme
2122
import com.osfans.trime.ime.bar.QuickBar
2223
import com.osfans.trime.ime.broadcast.InputBroadcastReceiver
24+
import com.osfans.trime.ime.candidates.popup.PopupCandidatesMode
2325
import com.osfans.trime.ime.dependency.InputScope
2426
import me.tatarka.inject.annotations.Inject
2527
import splitties.views.backgroundColor
@@ -67,7 +69,12 @@ class PreeditModule(
6769
animationStyle = 0
6870
}
6971

72+
private val candidatesMode by AppPrefs.defaultInstance().candidates.mode
73+
7074
override fun onInputContextUpdate(ctx: RimeProto.Context) {
75+
// TODO: 临时修复状态栏与悬浮窗同时显示,后续需优化:考虑分离数据或寻找更好的实现方式
76+
if (candidatesMode == PopupCandidatesMode.FORCE_SHOW) return
77+
7178
ui.update(ctx.composition)
7279
if (ctx.composition.length > 0) {
7380
val (x, y) = intArrayOf(0, 0).also { bar.view.getLocationInWindow(it) }

0 commit comments

Comments
 (0)