From d8e72674d777bf697791d03b56869c14316a32e8 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Thu, 21 Dec 2023 21:33:29 +0800 Subject: [PATCH] InputHandler // Add support for `%keys_to_directly_commit`. --- .../Sources/MainAssembly/InputHandler_TriageInput.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler_TriageInput.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler_TriageInput.swift index 3e84d708..911c9292 100644 --- a/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler_TriageInput.swift +++ b/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler_TriageInput.swift @@ -106,7 +106,7 @@ public extension InputHandler { // MARK: - 按狀態分診(Triage by States) - switch state.type { + triageByState: switch state.type { case .ofDeactivated, .ofAbortion, .ofCommitting: return false case .ofAssociates, .ofCandidates, .ofSymbolTable: let result = handleCandidate(input: input) @@ -174,6 +174,12 @@ public extension InputHandler { // 根據 keyCode 進行分診處理。 if let keyCodeTriaged = triageByKeyCode() { return keyCodeTriaged } + // 磁帶模式:如果有定義 keysToDirectlyCommit 的話,對符合條件的輸入訊號不再作處理。 + var cinDirectlyCommit = prefs.cassetteEnabled && !currentLM.keysToDirectlyCommit.isEmpty + cinDirectlyCommit = cinDirectlyCommit && [.ofInputting, .ofEmpty].contains(state.type) + cinDirectlyCommit = cinDirectlyCommit && currentLM.keysToDirectlyCommit.contains(input.text) + guard !cinDirectlyCommit else { break triageByState } + // 全形/半形阿拉伯數字輸入。 if handleArabicNumeralInputs(input: input) { return true }