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,9 +359,36 @@ extension KeyHandler {
return true return true
} }
// MARK: / (Full-Width / Half-Width Space)
/// 使
if state is InputState.Empty {
if input.isSpace, !input.isOptionHold, !input.isControlHold, !input.isCommandHold {
stateCallback(InputState.Committing(textToCommit: input.isShiftHold ? " " : " "))
stateCallback(InputState.Empty())
return true
}
}
// MARK: Shift+ (Shift+Letter Processing)
// 使 2.2 // 使 2.2
if input.isUpperCaseASCIILetterKey { if input.isUpperCaseASCIILetterKey, !input.isCommandHold, !input.isControlHold {
let letter: String! = String(format: "%@%c", "_letter_", charCode.isPrintableASCII ? CChar(charCode) : inputText) 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( if handlePunctuation(
letter, letter,
state: state, state: state,
@ -372,15 +399,6 @@ extension KeyHandler {
return true return true
} }
} }
// MARK: / (Full-Width / Half-Width Space)
/// 使
if state is InputState.Empty {
if input.isSpace, !input.isOptionHold, !input.isControlHold, !input.isCommandHold {
stateCallback(InputState.Committing(textToCommit: input.isShiftHold ? " " : " "))
stateCallback(InputState.Empty())
return true
} }
} }