[Bug] Shift+鼠标点击或者Shift+Home/End时错误切换输入模式
Describe the bug: 正常状态下输入模式(中->西/西->中)可以用Shift键切换,没问题。但是当使用Shift + 点击选中区域或者shift+home/shift+end 选中光标位置到行首/行尾的内容时会错误的切换输入模式,shift + 字母组合似乎没有类似的问题。 Shift + 鼠标点击选中区域出错的应用似乎更多,在 vscode / sublime text / google chrome中都出现 Shift + Home/End 只在sublime text中好重现,而且Shift键和Home/End键不同时抬起也不会触发错误
Expected behavior: 按Shift+鼠标点击或者Shift+Home/End时不切换中西文输入模式
Actual behavior: 按Shift+鼠标点击或者Shift+Home/End时切换中西文输入模式
Environment
- OS version: (macOS 14.4.1)
- Squirrel version: (1.0.3)
Shift + Home/End 這組好解釋。肯定是 編輯器搶先處理了 Home/End 的鍵盤事件,輸入法只收到 Shift 單擊。 單擊要在有限時間內完成才會切換狀態。
不知道和这个issue有没有关系,偶然发现在Firefox浏览器以及zed编辑器这两个应用中,快速按下Shift键+其它键(我日常使用Vim键位,常用Shift+o Shift+:等),就会触发中西切换,但如果先按住Shift不放大约1秒,再按其它键,就不会触发切换。
相关issue: https://github.com/zed-industries/zed/issues/21042 https://github.com/zed-industries/zed/issues/26753
我看Wayland的输入法协议里输入法可以拦截所有的按键事件,然后将未处理的事件再丢出去,macOS上其它应用居然可以和输入法抢按键事件吗?
拦截所有的按键事件、未处理的事件再丢出去,输入法一般都会设计这样的流程,疑点是在这之前,应用程序能不能先拦截。