KeyHandler // Refactor handlePunctuation().

This commit is contained in:
ShikiSuen 2022-06-30 18:30:03 +08:00
parent df74b5b234
commit 00f44ffbcb
1 changed files with 28 additions and 27 deletions

View File

@ -295,14 +295,23 @@ extension KeyHandler {
return false return false
} }
if composer.isEmpty { guard composer.isEmpty else {
//
IME.prtDebugIntel("A9B69908D")
errorCallback()
stateCallback(state)
return true
}
insertToCompositorAtCursor(reading: customPunctuation) insertToCompositorAtCursor(reading: customPunctuation)
let textToCommit = commitOverflownCompositionAndWalk let textToCommit = commitOverflownCompositionAndWalk
let inputting = buildInputtingState let inputting = buildInputtingState
inputting.textToCommit = textToCommit inputting.textToCommit = textToCommit
stateCallback(inputting) stateCallback(inputting)
if mgrPrefs.useSCPCTypingMode, composer.isEmpty { //
guard mgrPrefs.useSCPCTypingMode, composer.isEmpty else { return true }
let candidateState = buildCandidate( let candidateState = buildCandidate(
state: inputting, state: inputting,
isTypingVertical: isTypingVertical isTypingVertical: isTypingVertical
@ -310,7 +319,7 @@ extension KeyHandler {
if candidateState.candidates.count == 1 { if candidateState.candidates.count == 1 {
clear() clear()
if let strtextToCommit: String = candidateState.candidates.first { if let strtextToCommit: String = candidateState.candidates.first {
stateCallback(InputState.Committing(textToCommit: strtextToCommit) as InputState.Committing) stateCallback(InputState.Committing(textToCommit: strtextToCommit))
stateCallback(InputState.Empty()) stateCallback(InputState.Empty())
} else { } else {
stateCallback(candidateState) stateCallback(candidateState)
@ -318,15 +327,7 @@ extension KeyHandler {
} else { } else {
stateCallback(candidateState) stateCallback(candidateState)
} }
}
return true return true
} else {
// If there is still unfinished bpmf reading, ignore the punctuation
IME.prtDebugIntel("A9B69908D")
errorCallback()
stateCallback(state)
return true
}
} }
// MARK: - Enter // MARK: - Enter