From 13d2569919daa3ecebeb17ed92feb8d74c7693b7 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 31 May 2022 14:28:33 +0800 Subject: [PATCH] InputState // Recognize EmptyIgnoringPreviousState as Empty. - The only difference is that EmptyIgnoringPreviousState doesn't commit the contents of the previous state. --- Source/Modules/ControllerModules/InputState.swift | 8 ++------ Source/Modules/IMEModules/ctlInputMethod.swift | 4 +++- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Source/Modules/ControllerModules/InputState.swift b/Source/Modules/ControllerModules/InputState.swift index 02a54025..50044dbc 100644 --- a/Source/Modules/ControllerModules/InputState.swift +++ b/Source/Modules/ControllerModules/InputState.swift @@ -83,12 +83,8 @@ class InputState { // MARK: - /// Represents that the composing buffer is empty. - class EmptyIgnoringPreviousState: InputState { - var composingBuffer: String { - "" - } - - var description: String { + class EmptyIgnoringPreviousState: Empty { + override var description: String { "" } } diff --git a/Source/Modules/IMEModules/ctlInputMethod.swift b/Source/Modules/IMEModules/ctlInputMethod.swift index d6ad6e05..88dab5e0 100644 --- a/Source/Modules/IMEModules/ctlInputMethod.swift +++ b/Source/Modules/IMEModules/ctlInputMethod.swift @@ -308,7 +308,9 @@ extension ctlInputMethod { return } - if let previous = previous as? InputState.NotEmpty { + if let previous = previous as? InputState.NotEmpty, + !(state is InputState.EmptyIgnoringPreviousState) + { commit(text: previous.composingBuffer, client: client) } client.setMarkedText(