From f7dc87fd7d98eb8f36b15000937fe2f07c98422d Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 1 Mar 2023 13:55:25 +0800 Subject: [PATCH] InputHandler // Fix half-width numeral inputs with (shift+)option key. --- Source/Modules/InputHandler_HandleInput.swift | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/Modules/InputHandler_HandleInput.swift b/Source/Modules/InputHandler_HandleInput.swift index 0945dbc8..14f499e4 100644 --- a/Source/Modules/InputHandler_HandleInput.swift +++ b/Source/Modules/InputHandler_HandleInput.swift @@ -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 }