diff --git a/Terminal.Gui/ConsoleDrivers/EscSeqUtils/EscSeqUtils.cs b/Terminal.Gui/ConsoleDrivers/EscSeqUtils/EscSeqUtils.cs index 7a8a67e36..c18183709 100644 --- a/Terminal.Gui/ConsoleDrivers/EscSeqUtils/EscSeqUtils.cs +++ b/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); diff --git a/UnitTests/Input/EscSeqUtilsTests.cs b/UnitTests/Input/EscSeqUtilsTests.cs index cffe0e1a2..4f783115f 100644 --- a/UnitTests/Input/EscSeqUtilsTests.cs +++ b/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 (); }