ctlIME // Stop Shift+Enter from crashing IMKCandidates.

This commit is contained in:
ShikiSuen 2022-08-17 18:50:32 +08:00
parent 8fd2f96163
commit ca98961e45
1 changed files with 24 additions and 0 deletions

View File

@ -211,6 +211,30 @@ class ctlInputMethod: IMKInputController {
// - super.interpretKeyEvents() // - super.interpretKeyEvents()
// - delegate ctlInputMethod KeyHandler // - delegate ctlInputMethod KeyHandler
if let ctlCandidateCurrent = ctlInputMethod.ctlCandidateCurrent as? ctlCandidateIMK, ctlCandidateCurrent.visible { if let ctlCandidateCurrent = ctlInputMethod.ctlCandidateCurrent as? ctlCandidateIMK, ctlCandidateCurrent.visible {
let input = InputSignal(event: event)
// Shift+Enter delegate keyHandler
// Shift Flags
if input.isShiftHold, input.isEnter {
guard
let newEvent = NSEvent.keyEvent(
with: event.type,
location: event.locationInWindow,
modifierFlags: [],
timestamp: event.timestamp,
windowNumber: event.windowNumber,
context: nil,
characters: event.characters ?? "",
charactersIgnoringModifiers: event.charactersIgnoringModifiers ?? event.characters ?? "",
isARepeat: event.isARepeat,
keyCode: event.keyCode
)
else {
NSSound.beep()
return true
}
ctlCandidateCurrent.interpretKeyEvents([newEvent])
return true
}
ctlCandidateCurrent.interpretKeyEvents([event]) ctlCandidateCurrent.interpretKeyEvents([event])
return true return true
} }