KeyHandler // +upperCaseLetterKeyBehavior.

This commit is contained in:
ShikiSuen 2022-08-09 11:59:02 +08:00
parent aeed63a20a
commit 58a68c51fc
1 changed files with 32 additions and 14 deletions

View File

@ -359,20 +359,6 @@ extension KeyHandler {
return true
}
// 使 2.2
if input.isUpperCaseASCIILetterKey {
let letter: String! = String(format: "%@%c", "_letter_", charCode.isPrintableASCII ? CChar(charCode) : inputText)
if handlePunctuation(
letter,
state: state,
usingVerticalTyping: input.isTypingVertical,
stateCallback: stateCallback,
errorCallback: errorCallback
) {
return true
}
}
// MARK: / (Full-Width / Half-Width Space)
/// 使
@ -384,6 +370,38 @@ extension KeyHandler {
}
}
// MARK: Shift+ (Shift+Letter Processing)
// 使 2.2
if input.isUpperCaseASCIILetterKey, !input.isCommandHold, !input.isControlHold {
if input.isShiftHold { // isOptionHold
switch mgrPrefs.upperCaseLetterKeyBehavior {
case 1:
stateCallback(InputState.Empty())
stateCallback(InputState.Committing(textToCommit: inputText.lowercased()))
stateCallback(InputState.Empty())
return true
case 2:
stateCallback(InputState.Empty())
stateCallback(InputState.Committing(textToCommit: inputText.uppercased()))
stateCallback(InputState.Empty())
return true
default: // case 0
let letter: String! = String(
format: "%@%c", "_letter_", charCode.isPrintableASCII ? CChar(charCode) : inputText)
if handlePunctuation(
letter,
state: state,
usingVerticalTyping: input.isTypingVertical,
stateCallback: stateCallback,
errorCallback: errorCallback
) {
return true
}
}
}
}
// MARK: - (Still Nothing)
/// ctlInputMethod