IMKCandidates // +replaceNumPadKeyCodes().

This commit is contained in:
ShikiSuen 2022-08-20 13:43:13 +08:00
parent eb397c1533
commit 1dfae4e6d4
1 changed files with 22 additions and 0 deletions

View File

@ -346,3 +346,25 @@ var currentTISInputSource: TISInputSource? {
}
return result
}
// MARK: - Translating NumPad KeyCodes to Default IMK Candidate Selection KeyCodes.
extension ctlCandidateIMK {
public static func replaceNumPadKeyCodes(target event: NSEvent) -> NSEvent? {
let mapNumPadKeyCodeTranslation: [UInt16: UInt16] = [
83: 18, 84: 19, 85: 20, 86: 21, 87: 23, 88: 22, 89: 26, 91: 28, 92: 25,
]
return NSEvent.keyEvent(
with: event.type,
location: event.locationInWindow,
modifierFlags: event.modifierFlags,
timestamp: event.timestamp,
windowNumber: event.windowNumber,
context: nil,
characters: event.characters ?? "",
charactersIgnoringModifiers: event.charactersIgnoringModifiers ?? event.characters ?? "",
isARepeat: event.isARepeat,
keyCode: mapNumPadKeyCodeTranslation[event.keyCode] ?? event.keyCode
)
}
}