From cc321f96d2c981efe2c77637f39bd00ab2f1d0c3 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Fri, 4 Mar 2022 22:56:38 +0800 Subject: [PATCH] KeyHandlerInput // Attempt to detect flag changes. --- Source/Modules/ControllerModules/KeyHandlerInput.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/Modules/ControllerModules/KeyHandlerInput.swift b/Source/Modules/ControllerModules/KeyHandlerInput.swift index dc087714..08ac51c5 100644 --- a/Source/Modules/ControllerModules/KeyHandlerInput.swift +++ b/Source/Modules/ControllerModules/KeyHandlerInput.swift @@ -51,6 +51,7 @@ class KeyHandlerInput: NSObject { @objc private (set) var inputTextIgnoringModifiers: String? @objc private (set) var charCode: UInt16 @objc private (set) var keyCode: UInt16 + private var isFlagChanged: Bool private var flags: NSEvent.ModifierFlags private var cursorForwardKey: KeyCode private var cursorBackwardKey: KeyCode @@ -68,6 +69,7 @@ class KeyHandlerInput: NSObject { self.keyCode = keyCode self.charCode = AppleKeyboardConverter.cnvApple2ABC(charCode) self.flags = flags + self.isFlagChanged = false useVerticalMode = isVerticalMode emacsKey = EmacsKeyHelper.detect(charCode: AppleKeyboardConverter.cnvApple2ABC(charCode), flags: flags) cursorForwardKey = useVerticalMode ? .down : .right @@ -84,6 +86,7 @@ class KeyHandlerInput: NSObject { inputTextIgnoringModifiers = AppleKeyboardConverter.cnvStringApple2ABC(event.charactersIgnoringModifiers ?? "") keyCode = event.keyCode flags = event.modifierFlags + isFlagChanged = (event.type == .flagsChanged) ? true : false useVerticalMode = isVerticalMode let charCode: UInt16 = { guard let inputText = event.characters, inputText.count > 0 else {