Bläddra i källkod

Add local function to clear input.

BDisp 8 månader sedan
förälder
incheckning
99350b7576
1 ändrade filer med 13 tillägg och 8 borttagningar
  1. 13 8
      Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsConsole.cs

+ 13 - 8
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;