diff --git a/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs b/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs index 2980f9118..d61f41191 100644 --- a/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs +++ b/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs @@ -384,6 +384,7 @@ namespace Terminal.Gui { return true; } + Action keyDownHandler; Action keyHandler; Action keyUpHandler; private CursorVisibility savedCursorVisibility; diff --git a/Terminal.Gui/Views/ContextMenu.cs b/Terminal.Gui/Views/ContextMenu.cs index b5dcde5f6..71d3c41b3 100644 --- a/Terminal.Gui/Views/ContextMenu.cs +++ b/Terminal.Gui/Views/ContextMenu.cs @@ -132,7 +132,8 @@ namespace Terminal.Gui { Y = position.Y, Width = 0, Height = 0, - UseSubMenusSingleFrame = this.UseSubMenusSingleFrame + UseSubMenusSingleFrame = UseSubMenusSingleFrame, + Key = Key }; menuBar.isContextMenuLoading = true; diff --git a/UnitTests/ConsoleDriverTests.cs b/UnitTests/ConsoleDriverTests.cs index 4aa5dbc3d..7c8f1ac3f 100644 --- a/UnitTests/ConsoleDriverTests.cs +++ b/UnitTests/ConsoleDriverTests.cs @@ -608,6 +608,30 @@ namespace Terminal.Gui.ConsoleDrivers { Application.Run (win); Application.Shutdown (); } + + [Theory] + [InlineData(0x0000001F, 0x241F)] + [InlineData(0x0000007F, 0x247F)] + [InlineData(0x0000009F, 0x249F)] + [InlineData(0x0001001A, 0x241A)] + public void MakePrintable_Converts_Control_Chars_To_Proper_Unicode (uint code, uint expected) + { + var actual = ConsoleDriver.MakePrintable(code); + + Assert.Equal (expected, actual.Value); + } + + [Theory] + [InlineData(0x20)] + [InlineData(0x7E)] + [InlineData(0xA0)] + [InlineData(0x010020)] + public void MakePrintable_Does_Not_Convert_Ansi_Chars_To_Unicode (uint code) + { + var actual = ConsoleDriver.MakePrintable(code); + + Assert.Equal (code, actual.Value); + } /// /// Sometimes when using remote tools EventKeyRecord sends 'virtual keystrokes'.