KeyHandler // Simplify state conditioning in handle().
This commit is contained in:
parent
c79c4aeb2e
commit
df74b5b234
|
@ -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.")
|
||||
|
|
|
@ -356,6 +356,7 @@ extension ctlInputMethod {
|
|||
_ = state // 防止格式整理工具毀掉與此對應的參數。
|
||||
ctlCandidateCurrent.visible = false
|
||||
hideTooltip()
|
||||
// 全專案用以判斷「.EmptyIgnoringPreviousState」的地方僅此一處。
|
||||
if let previous = previous as? InputState.NotEmpty,
|
||||
!(state is InputState.EmptyIgnoringPreviousState)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
// if let state = state as? InputState.AssociatedPhrases {
|
||||
// XCTAssertTrue(state.candidates.contains("百五"))
|
||||
}
|
||||
// }
|
||||
mgrPrefs.associatedPhrasesEnabled = enabled
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue