InputHandler // Fix half-width numeral inputs with (shift+)option key.

This commit is contained in:
ShikiSuen 2023-03-01 13:55:25 +08:00
parent 1b0fd45951
commit f7dc87fd7d
1 changed files with 7 additions and 2 deletions

View File

@ -222,9 +222,14 @@ extension InputHandler {
// MARK: / (FW / HW Arabic Numbers Input)
if state.type == .ofEmpty {
if input.isMainAreaNumKey, input.modifierFlags == [.shift, .option] {
if input.isMainAreaNumKey, input.isOptionHold, !input.isCommandHold, !input.isControlHold {
guard let strRAW = input.mainAreaNumKeyChar else { return false }
let newString = strRAW.applyingTransformFW2HW(reverse: !prefs.halfWidthPunctuationEnabled)
let newString: String = {
if input.isShiftHold {
return strRAW.applyingTransformFW2HW(reverse: !prefs.halfWidthPunctuationEnabled)
}
return strRAW.applyingTransformFW2HW(reverse: false)
}()
delegate.switchState(IMEState.ofCommitting(textToCommit: newString))
return true
}