From 99350b7576a85b1a2bf6e27945777dbf8648ba01 Mon Sep 17 00:00:00 2001 From: BDisp Date: Sun, 17 Nov 2024 21:31:31 +0000 Subject: [PATCH] Add local function to clear input. --- .../WindowsDriver/WindowsConsole.cs | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsConsole.cs b/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsConsole.cs index 34dc8bd8e..69d0de755 100644 --- a/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsConsole.cs +++ b/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsConsole.cs @@ -121,10 +121,8 @@ internal class WindowsConsole readingSequence = false; raisedResponse = true; seqReqStatus.AnsiRequest.RaiseResponseFromInput (ansiSequence.ToString (), seqReqStatus.AnsiRequest); - // Clear the terminator for not be enqueued - inputRecord = default (InputRecord); - // Clear numberEventsRead to not exit - numberEventsRead = 0; + ClearInputRecord (); + // Clear the ansiSequence to avoid insert another Esc character ansiSequence.Clear (); } @@ -146,8 +144,7 @@ internal class WindowsConsole lock (seqReqStatus!.AnsiRequest._responseLock) { seqReqStatus.AnsiRequest.RaiseResponseFromInput (ansiSequence.ToString (), seqReqStatus.AnsiRequest); - // Clear the terminator for not be enqueued - inputRecord = default (InputRecord); + ClearInputRecord(); } _retries = 0; @@ -163,8 +160,7 @@ internal class WindowsConsole AnsiEscapeSequenceRequests.Statuses.TryDequeue (out _); seqReqStatus.AnsiRequest.RaiseResponseFromInput (null, seqReqStatus.AnsiRequest); - // Clear the terminator for not be enqueued - inputRecord = default (InputRecord); + ClearInputRecord(); } } @@ -209,6 +205,15 @@ internal class WindowsConsole } return null; + + void ClearInputRecord () + { + // Clear the terminator for not be enqueued + inputRecord = default (InputRecord); + + // Clear numberEventsRead to not exit + numberEventsRead = 0; + } } internal bool _forceRead;