一些代码片段 - tumuyan/trime-without-CMake GitHub Wiki
点击候选栏存在这样的两难问题:
- 旧版本触摸候选词直接上屏,当lua_selector算法需要上屏的内容与候选栏显示的内容有差异时,会导致lua selector失效。
- 在pr #472 中,定位到了问题点,并且修改点击候选栏的事件为模拟数字键。
而这又带来了新的问题:部分方案使用数字做码元,这会导致方案无法上屏。(其实我认为这样的方案是有问题的,小狼毫由于不支持触摸,根本无法使用这种方案)
另一个问题是符号候选,输入"/"点击相应候选,是无法正常上屏的(我认为这其实是symbol.yaml的缺陷,"/"就不应该绑定其他符号)。
但是无论如何,已经是事实。考虑到兼容问题,暂定增加开关解决问题。在此记录一些代码片段。
一些没什么用的代码:
else if (Rime.selectCandidate(i)) {
if(Rime.getCommit()) {
String text = Rime.getCommitText();
if (text != null && text.length() > 20) {
if (i == 10) handleKey(KeyEvent.KEYCODE_0, 0);
else if (i >= 1 && i < 10) sendDownUpKeyEvents(KeyEvent.KEYCODE_SPACE, 0);
else{
commitText(Rime.getCommitText());
updateComposing();
}
return;
}
}
commitText(Rime.getCommitText());
updateComposing();
}
private boolean commitByNumKey(int i) {
if (i < 1 || i > 10) return false;
if (i == 10) handleKey(KeyEvent.KEYCODE_0, 0);
handleKey(KeyEvent.KEYCODE_1 + i, 0);
return true;
}