Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

窗口切换后键入shift+任意键会导致切换中西文输入模式 #901

Closed
gradypark86 opened this issue May 22, 2024 · 3 comments · Fixed by #898
Closed

窗口切换后键入shift+任意键会导致切换中西文输入模式 #901

gradypark86 opened this issue May 22, 2024 · 3 comments · Fixed by #898

Comments

@gradypark86
Copy link

gradypark86 commented May 22, 2024

升级到 0.18 后,若切换窗口后输入 shift+任意键(如输入 #, @, !, A, B 等),输入法会切换中西文输入模式。

复现步骤:

  1. 在某窗口正常输入,此时为中文输入模式。
  2. 使用快捷键切换到另一窗口,再切换回来。
  3. 此时中文可正常输入,但一旦输入 shift+任意键,输入法会变为西文输入模式。

0.16.2 无此问题,0.18 自带默认配置即有此问题。

@gradypark86
Copy link
Author

貌似是和 alt-tab 存在冲突,使用 alt-tab 快捷键切换到其他窗口才会出现上述问题。macOS 自带的 ⌘ + ⇥ 快捷键没有影响。

测试了一下,只有将 ⌘ 或 ⌥ 作为 alt-tab 的按住键,会出现该问题。

@LEOYoon-Tsaw
Copy link
Member

LEOYoon-Tsaw commented May 23, 2024

我可以重現這個問題,原因是Option +Tab後失焦了,Option鍵release的事件被推遲到Shift按下的時候和Shift按下一齊發送給了鼠鬚管。而鼠鬚管沒有對同時多個修飾鍵改變這種情況做處理,結果是Shift按下先於Option釋放處理了,Librime最後看到Shift釋放時沒有識別到之前的Shift down(Librime認爲前次事件是Option up),就沒有正確處理。

我做了一些修復的嘗試,確保在同時有多個modifier改變時,先傳release的給librime,後傳按下的給librime。能解決這個問題,對日常使用也不會有影響(正常不可能同時按兩個鍵,總有先後)。

@lotem 看看前端的處理是否合適吧,也許由librime修復也可以。

@LEOYoon-Tsaw LEOYoon-Tsaw linked a pull request May 23, 2024 that will close this issue
@lotem
Copy link
Member

lotem commented May 23, 2024

在修饰键状态改变时模拟修饰键按下和释放的事件这是鼠须管前端特有的逻辑。所以就在前端修复吧。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants