From df74b5b2341459e16c73dcaaebe86ebc7b03ac57 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Thu, 30 Jun 2022 09:12:47 +0800 Subject: [PATCH] KeyHandler // Simplify state conditioning in handle(). --- .../ControllerModules/KeyHandler_HandleInput.swift | 5 ++--- .../ControllerModules/ctlInputMethod_Core.swift | 1 + vChewingTests/KeyHandlerTestsNormalCHS.swift | 12 ++++++------ vChewingTests/KeyHandlerTestsSCPCCHT.swift | 10 +++++----- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift b/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift index 724765da..850921a2 100644 --- a/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift +++ b/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift @@ -56,9 +56,8 @@ extension KeyHandler { // 提前過濾掉一些不合規的按鍵訊號輸入,免得相關按鍵訊號被送給 Megrez 引發輸入法崩潰。 if input.isInvalidInput { // 在「.Empty(IgnoringPreviousState) 與 .Deactivated」狀態下的首次不合規按鍵輸入可以直接放行。 - if state is InputState.Empty || state is InputState.Deactivated - || state is InputState.EmptyIgnoringPreviousState - { + // 因為「.EmptyIgnorePreviousState」會在處理之後被自動轉為「.Empty」,所以不需要單獨判斷。 + if state is InputState.Empty || state is InputState.Deactivated { return false } IME.prtDebugIntel("550BCF7B: KeyHandler just refused an invalid input.") diff --git a/Source/Modules/ControllerModules/ctlInputMethod_Core.swift b/Source/Modules/ControllerModules/ctlInputMethod_Core.swift index 711fec8e..fa8c578e 100644 --- a/Source/Modules/ControllerModules/ctlInputMethod_Core.swift +++ b/Source/Modules/ControllerModules/ctlInputMethod_Core.swift @@ -356,6 +356,7 @@ extension ctlInputMethod { _ = state // 防止格式整理工具毀掉與此對應的參數。 ctlCandidateCurrent.visible = false hideTooltip() + // 全專案用以判斷「.EmptyIgnoringPreviousState」的地方僅此一處。 if let previous = previous as? InputState.NotEmpty, !(state is InputState.EmptyIgnoringPreviousState) { diff --git a/vChewingTests/KeyHandlerTestsNormalCHS.swift b/vChewingTests/KeyHandlerTestsNormalCHS.swift index 8eeec80b..dd334d45 100644 --- a/vChewingTests/KeyHandlerTestsNormalCHS.swift +++ b/vChewingTests/KeyHandlerTestsNormalCHS.swift @@ -493,7 +493,7 @@ class KeyHandlerTestsNormalCHS: XCTestCase { } errorCallback: { } } - XCTAssertTrue(state is InputState.EmptyIgnoringPreviousState, "\(state)") + XCTAssertTrue(state is InputState.Empty, "\(state)") } func testInputting() { @@ -673,7 +673,7 @@ class KeyHandlerTestsNormalCHS: XCTestCase { } errorCallback: { } - XCTAssertTrue(state is InputState.EmptyIgnoringPreviousState, "\(state)") + XCTAssertTrue(state is InputState.Empty, "\(state)") } func testBackspaceToDeleteReading() { @@ -707,7 +707,7 @@ class KeyHandlerTestsNormalCHS: XCTestCase { state = newState } errorCallback: { } - XCTAssertTrue(state is InputState.EmptyIgnoringPreviousState, "\(state)") + XCTAssertTrue(state is InputState.Empty, "\(state)") } func testBackspaceAtBegin() { @@ -829,7 +829,7 @@ class KeyHandlerTestsNormalCHS: XCTestCase { } errorCallback: { } - XCTAssertTrue(state is InputState.EmptyIgnoringPreviousState, "\(state)") + XCTAssertTrue(state is InputState.Empty, "\(state)") } func testCursorWithReading() { @@ -1543,7 +1543,7 @@ class KeyHandlerTestsNormalCHS: XCTestCase { } errorCallback: { } - XCTAssertTrue(state is InputState.EmptyIgnoringPreviousState, "\(state)") + XCTAssertTrue(state is InputState.Empty, "\(state)") mgrPrefs.escToCleanInputBuffer = enabled } @@ -1611,7 +1611,7 @@ class KeyHandlerTestsNormalCHS: XCTestCase { } errorCallback: { } - XCTAssertTrue(state is InputState.EmptyIgnoringPreviousState, "\(state)") + XCTAssertTrue(state is InputState.Empty, "\(state)") mgrPrefs.escToCleanInputBuffer = enabled } } diff --git a/vChewingTests/KeyHandlerTestsSCPCCHT.swift b/vChewingTests/KeyHandlerTestsSCPCCHT.swift index 0c6ef6a1..c8036823 100644 --- a/vChewingTests/KeyHandlerTestsSCPCCHT.swift +++ b/vChewingTests/KeyHandlerTestsSCPCCHT.swift @@ -266,7 +266,7 @@ class KeyHandlerTestsSCPCCHT: XCTestCase { } print("Expecting EmptyIgnoringPreviousState.") print("\(state)") - // XCTAssertTrue(state is InputState.EmptyIgnoringPreviousState, "\(state)") + // XCTAssertTrue(state is InputState.Empty, "\(state)") } // TODO: Further bug-hunting needed. @@ -291,7 +291,7 @@ class KeyHandlerTestsSCPCCHT: XCTestCase { } print("Expecting EmptyIgnoringPreviousState.") print("\(state)") - // XCTAssertTrue(state is InputState.EmptyIgnoringPreviousState, "\(state)") + // XCTAssertTrue(state is InputState.Empty, "\(state)") } // TODO: Further bug-hunting needed. @@ -314,9 +314,9 @@ class KeyHandlerTestsSCPCCHT: XCTestCase { print("Expecting AssociatedPhrases.") print("\(state)") // XCTAssertTrue(state is InputState.AssociatedPhrases, "\(state)") - if let state = state as? InputState.AssociatedPhrases { - // XCTAssertTrue(state.candidates.contains("百五")) - } + // if let state = state as? InputState.AssociatedPhrases { + // XCTAssertTrue(state.candidates.contains("百五")) + // } mgrPrefs.associatedPhrasesEnabled = enabled }