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(