上报前请检查
- [* ] 我遇到的问题没有其他人在 issue 里提到过
- [*] 我的小狼毫版本于 rime/weasel 下载
- [*] 我在使用小狼毫的最新发布版本,或最新发布版本后的 CI 构建
操作系统信息
- OS 详细版本: Windows10, 22H2,19045.6546
- 小狼毫版本: 0.17.4
描述遇到的问题
在0.17.4版的小狼毫的拼音或者五笔输入法中,将ascii_mode的reset设置为1,默认是英文状态
在gvim.exe(9.1.1825)中, 执行完任意一个normal模式下的命令,比如 r 1,或者:w [Enter],输入法就会自动变成中文状态。在0.17.0中,没有这个问题。
如果0.17.4将ascii_mode的reset设置为0,默认是中文状态,也没有这个问题。
我跟踪了一下,如果是在0.17.4中将ascii_mode的reset设置为1,每次执行完gvim的normal命令后,gvim会无缘无故调用一次 HRESULT WeaselTSF::_HandleCompartment(REFGUID guidCompartment) 这个函数,参数为GUID_COMPARTMENT_KEYBOARD_OPENCLOSE,导致小狼毫执行如下代码:
_status.ascii_mode = !_IsKeyboardOpen();
if (_pLangBarButton && _pLangBarButton->IsLangBarDisabled())
_EnableLanguageBar(true);
_HandleLangBarMenuSelect(_status.ascii_mode
? ID_WEASELTRAY_ENABLE_ASCII
: ID_WEASELTRAY_DISABLE_ASCII);
输入法就自动切换成中文了。
0.17.0不管ascii_mode/reset为0还是1,或者0.17.4中把ascii_mode/reset=0, gvim在执行完normal模式下的命令后,就不会调用 HRESULT WeaselTSF::_HandleCompartment(REFGUID guidCompartment)。
上报前请检查
操作系统信息
描述遇到的问题
在0.17.4版的小狼毫的拼音或者五笔输入法中,将ascii_mode的reset设置为1,默认是英文状态
在gvim.exe(9.1.1825)中, 执行完任意一个normal模式下的命令,比如 r 1,或者:w [Enter],输入法就会自动变成中文状态。在0.17.0中,没有这个问题。
如果0.17.4将ascii_mode的reset设置为0,默认是中文状态,也没有这个问题。
我跟踪了一下,如果是在0.17.4中将ascii_mode的reset设置为1,每次执行完gvim的normal命令后,gvim会无缘无故调用一次 HRESULT WeaselTSF::_HandleCompartment(REFGUID guidCompartment) 这个函数,参数为GUID_COMPARTMENT_KEYBOARD_OPENCLOSE,导致小狼毫执行如下代码:
_status.ascii_mode = !_IsKeyboardOpen();
if (_pLangBarButton && _pLangBarButton->IsLangBarDisabled())
_EnableLanguageBar(true);
_HandleLangBarMenuSelect(_status.ascii_mode
? ID_WEASELTRAY_ENABLE_ASCII
: ID_WEASELTRAY_DISABLE_ASCII);
输入法就自动切换成中文了。
0.17.0不管ascii_mode/reset为0还是1,或者0.17.4中把ascii_mode/reset=0, gvim在执行完normal模式下的命令后,就不会调用 HRESULT WeaselTSF::_HandleCompartment(REFGUID guidCompartment)。