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

checkModifierKeyUp 或需要新增 keyCode 检查。 #96

Closed
ShikiSuen opened this issue Mar 8, 2023 · 5 comments
Closed

checkModifierKeyUp 或需要新增 keyCode 检查。 #96

ShikiSuen opened this issue Mar 8, 2023 · 5 comments

Comments

@ShikiSuen
Copy link
Contributor

private func checkModifierKeyUp (event: NSEvent) -> Bool {
if event.type == .flagsChanged
&& event.modifierFlags.intersection(.deviceIndependentFlagsMask) == .init(rawValue: 0)
&& Date() - lastTime <= delayInterval {
// modifier keyup event
lastTime = Date(timeInterval: -3600*4, since: Date())
return true
}
return false
}

这个函式正文最开头插入这一行:

guard checkKeyCode.contains(Int(event.keyCode)) else { return false }

不然的话,这个模组在某些情况下会把 CapsLock+字符键 给判断成 Shift 单击事件。

@qwertyyb
Copy link
Owner

qwertyyb commented Mar 9, 2023

这个函数只是用来检查没有modifier键按下后并抬起的抬起动作。

你的意思是在某些情况下,按下CapsLock + 字符键时时, event.modifierFlags 会是 shift 吗?

@ShikiSuen
Copy link
Contributor Author

ShikiSuen commented Mar 9, 2023

@qwertyyb 恐怕是如此。

我这边威注音输入法有在借用您的这个模组来完成 Shift 按键判定(有 credit 您的 author info)。

https://github.com/vChewing/vChewing-macOS/blob/f9bc0a364216d67dd2ca52ac192bd88fe2d7bc2d/Packages/Qwertyyb_ShiftKeyUpChecker/Sources/ShiftKeyUpChecker/ShiftKeyUpChecker.swift

以上是被我发现故障的 commit 当中的版本,其中 Shift 以外的 Modifier 按键判断都被我砍了。

但有威注音输入法的用户电邮跟我说他经常失手敲 CapsLock+字母键,然后就突然敲不了字了。

我对 SessionCtl(IMKInputController) 做了删减排除法才发现是这套组合键让这个 Checker 误以为 Shift 键被单次敲击过、进而使 SessionCtl 当中的 isASCIIMode 被 toggle 了。

然后我按照目前这个 issue 顶楼的方法加上了那个判定,于是该故障消失了。

然后我推定业火五笔可能也需要这么修改。

@qwertyyb
Copy link
Owner

情况我已经了解了,我评估一下影响,然后加上这个判断,非常感谢你的反馈

@ShikiSuen
Copy link
Contributor Author

@qwertyyb 不会。祝顺利。

@qwertyyb
Copy link
Owner

qwertyyb commented Apr 6, 2023

已在新版本上加上此检查,感谢 🙏

@qwertyyb qwertyyb closed this as completed Apr 6, 2023
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

No branches or pull requests

2 participants