ctlIME // +updateModifierFlags.

This commit is contained in:
ShikiSuen 2022-03-26 18:52:21 +08:00
parent 9c3d59743d
commit 5655ef2b95
1 changed files with 12 additions and 0 deletions

View File

@ -73,6 +73,16 @@ class ctlInputMethod: IMKInputController {
client.overrideKeyboard(withKeyboardNamed: isfunctionKeyboardLayout ? mgrPrefs.functionKeyboardLayout : mgrPrefs.basisKeyboardLayout)
}
func updateModifierFlags(_ event: NSEvent!) {
// modifier flags flags AppleKeyboardConverter
IME.isShiftPressed = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.shift)
IME.isOptionPressed = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.option)
IME.isCapsLockOn = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.capsLock)
IME.isCommandPressed = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.command)
IME.isNumericPad = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.numericPad)
IME.isFunction = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.function)
}
// MARK: - IMKInputController methods
override init!(server: IMKServer!, delegate: Any!, client inputClient: Any!) {
@ -207,6 +217,8 @@ class ctlInputMethod: IMKInputController {
}
override func handle(_ event: NSEvent!, client: Any!) -> Bool {
//
updateModifierFlags(event)
if mgrPrefs.functionKeyboardLayout != mgrPrefs.basisKeyboardLayout {
// flags使 KeyHandler