From e4be1ecd3da2783bc07c37108bc8ae81edf44cc0 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sat, 11 Mar 2023 13:54:00 +0800 Subject: [PATCH] InputHandler // Extend upperCaseLetterKeyBehavior(). --- Source/Modules/InputHandler_HandleInput.swift | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/Source/Modules/InputHandler_HandleInput.swift b/Source/Modules/InputHandler_HandleInput.swift index 14f499e4..4d3b87d9 100644 --- a/Source/Modules/InputHandler_HandleInput.swift +++ b/Source/Modules/InputHandler_HandleInput.swift @@ -255,19 +255,23 @@ extension InputHandler { if input.isUpperCaseASCIILetterKey, !input.isCommandHold, !input.isControlHold { if input.isShiftHold { // 這裡先不要判斷 isOptionHold。 switch prefs.upperCaseLetterKeyBehavior { - case 1: - delegate.switchState(IMEState.ofEmpty()) - delegate.switchState(IMEState.ofCommitting(textToCommit: inputText.lowercased())) + case 1, 3: + if prefs.upperCaseLetterKeyBehavior == 3, !isConsideredEmptyForNow { break } + let commitText = generateStateOfInputting(sansReading: true).displayedText + delegate.switchState(IMEState.ofCommitting(textToCommit: commitText + inputText.lowercased())) return true - case 2: - delegate.switchState(IMEState.ofEmpty()) - delegate.switchState(IMEState.ofCommitting(textToCommit: inputText.uppercased())) + case 2, 4: + if prefs.upperCaseLetterKeyBehavior == 4, !isConsideredEmptyForNow { break } + let commitText = generateStateOfInputting(sansReading: true).displayedText + delegate.switchState(IMEState.ofCommitting(textToCommit: commitText + inputText.uppercased())) + return true + default: // 包括 case 0。 + break + } + // 直接塞給組字區。 + let letter = "_letter_\(inputText)" + if handlePunctuation(letter) { return true - default: // 包括 case 0,直接塞給組字區。 - let letter = "_letter_\(inputText)" - if handlePunctuation(letter) { - return true - } } } }