主题中自定义的has_menu不起作用
摘要 / Summary
升级最新每夜版后,我用has_menu设置的上下页键功能,和首选、次选候选词标签,均不起作用。 但改成composing又会起作用。
重现步骤 / Steps to Reproduce
正常输入
预期行为 / Expected Behavior
has_menu功能恢复正常
日志 / Log
com.osfans.trime-2025-12-01T04_55_53Z.txt
截图 / Screenshot
No response
附加信息 / Additional Context
No response
系统版本 / OS Version
HarmonyOS 4.2
应用版本 / App Version
v3.3.7-35-g2cf90f49-release
构建信息 / Build Information
构建者:Nightly CI Git 仓库:https://github.com/osfans/trime 构建 Git 哈希:2cf90f495845b425e9dd2badf116c9fd8dd3c155 构建时间:2025年11月30日 00:07:34
發現輸入文字後發出的的 RimeMessage 都是 RimeMessage.CandidateMenuMessage,而非RimeMessage.CandidateMenuMessage。
https://github.com/osfans/trime/blob/4c7068d13a111570157f06822d115617ecdd6afd/app/src/main/java/com/osfans/trime/core/Rime.kt#L256-L287
因此 Rime.menuCache 沒有更新,當中的 Rime.menuCache.candidate 永遠 isEmpty() == true,令 Key.checkAction() 中不能成功返回 keyActions[KeyBehavior.HAS_MENU] 。
原因應該是這樣,但我不懂怎樣修才好。改 jni 還是改 handleRimeMessage() 才好? @WhiredPlanck
@goofyz 应该是 CanidateListMessage 吧,这是我单独为候选栏新增的事件,其实应该在这个事件发生时也更新一下 menuCached,或者可以单独缓存一个候选词列表是否为空的状态表示是否 has_menu。