Browse Source

Always reset IncompleteCkInfos.

BDisp 8 months ago
parent
commit
be9cb6bbbb

+ 6 - 0
Terminal.Gui/ConsoleDrivers/EscSeqUtils/EscSeqUtils.cs

@@ -331,6 +331,12 @@ public static class EscSeqUtils
 
                 break;
             case "CSI":
+                // Reset always IncompleteCkInfos
+                if (IncompleteCkInfos is { })
+                {
+                    IncompleteCkInfos = null;
+                }
+
                 if (!string.IsNullOrEmpty (code) && code == "<")
                 {
                     GetMouse (cki, out buttonState, out pos, continuousButtonPressedHandler);

+ 5 - 1
UnitTests/Input/EscSeqUtilsTests.cs

@@ -954,6 +954,8 @@ public class EscSeqUtilsTests
 
         ConsoleKeyInfo expectedCki = default;
 
+        Assert.Null (EscSeqUtils.IncompleteCkInfos);
+
         EscSeqUtils.DecodeEscSeq (
                                                      ref _newConsoleKeyInfo,
                                                      ref _key,
@@ -983,7 +985,9 @@ public class EscSeqUtilsTests
         Assert.False (_isResponse);
         Assert.Equal (0, (int)_arg1);
         Assert.Equal (Point.Empty, _arg2);
+        Assert.NotNull (EscSeqUtils.IncompleteCkInfos);
         Assert.Equal (_cki, EscSeqUtils.IncompleteCkInfos);
+        Assert.Contains (EscSeqUtils.ToString (EscSeqUtils.IncompleteCkInfos), EscSeqUtils.ToString (_cki));
 
         _cki = EscSeqUtils.InsertArray (
                                         EscSeqUtils.IncompleteCkInfos,
@@ -1032,8 +1036,8 @@ public class EscSeqUtilsTests
         Assert.True (_isResponse);
         Assert.Equal (0, (int)_arg1);
         Assert.Equal (Point.Empty, _arg2);
+        Assert.Null (EscSeqUtils.IncompleteCkInfos);
         Assert.NotEqual (_cki, EscSeqUtils.IncompleteCkInfos);
-        Assert.Contains (EscSeqUtils.ToString (EscSeqUtils.IncompleteCkInfos), EscSeqUtils.ToString (_cki));
 
         ClearAll ();
     }