Skip to content

Commit c7bc119

Browse files
committed
Map KeyCode.Enter to ConsoleKey.Enter and vice versa.
1 parent d256e25 commit c7bc119

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

Terminal.Gui/ConsoleDrivers/ConsoleKeyMapping.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,8 @@ internal static uint MapKeyCodeToConsoleKey (KeyCode keyValue, out bool isConsol
369369
keyValue = keyValue & ~KeyCode.CtrlMask & ~KeyCode.ShiftMask & ~KeyCode.AltMask;
370370

371371
switch (keyValue) {
372+
case KeyCode.Enter:
373+
return (uint)ConsoleKey.Enter;
372374
case KeyCode.Delete:
373375
return (uint)ConsoleKey.Delete;
374376
case KeyCode.CursorUp:
@@ -457,6 +459,9 @@ public static KeyCode MapConsoleKeyInfoToKeyCode (ConsoleKeyInfo consoleKeyInfo)
457459
KeyCode keyCode;
458460

459461
switch (consoleKeyInfo.Key) {
462+
case ConsoleKey.Enter:
463+
keyCode = KeyCode.Enter;
464+
break;
460465
case ConsoleKey.Delete:
461466
keyCode = KeyCode.Delete;
462467
break;

UnitTests/ConsoleDrivers/ConsoleKeyMappingTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ public void EncodeKeyCharForVKPacket_DecodeVKPacketToKConsoleKeyInfo (char keyCh
260260
[InlineData ('q', ConsoleKey.Q, false, false, false, (KeyCode)'q')]
261261
[InlineData ('\0', ConsoleKey.F2, false, false, false, KeyCode.F2)]
262262
[InlineData ('英', ConsoleKey.None, false, false, false, (KeyCode)'英')]
263+
[InlineData ('\r', ConsoleKey.Enter, false, false, false, KeyCode.Enter)]
263264
public void MapConsoleKeyInfoToKeyCode_Also_Return_Modifiers (char keyChar, ConsoleKey consoleKey, bool shift, bool alt, bool control, KeyCode expectedKeyCode)
264265
{
265266
var consoleKeyInfo = new ConsoleKeyInfo (keyChar, consoleKey, shift, alt, control);
@@ -283,6 +284,7 @@ public void MapConsoleKeyInfoToKeyCode_Also_Return_Modifiers (char keyChar, Cons
283284
[InlineData ('q', false, false, false, (KeyCode)'q')]
284285
[InlineData ((uint)KeyCode.F2, false, false, false, KeyCode.F2)]
285286
[InlineData ('英', false, false, false, (KeyCode)'英')]
287+
[InlineData ('\n', false, false, false, KeyCode.Enter)]
286288
public void MapToKeyCodeModifiers_Tests (uint keyChar, bool shift, bool alt, bool control, KeyCode excpectedKeyCode)
287289
{
288290
var modifiers = ConsoleKeyMapping.GetModifiers (shift, alt, control);
@@ -307,6 +309,7 @@ public void MapToKeyCodeModifiers_Tests (uint keyChar, bool shift, bool alt, boo
307309
[InlineData ((KeyCode)'q', false, ConsoleKey.Q, 'q')]
308310
[InlineData (KeyCode.F2, true, ConsoleKey.F2, 'q')]
309311
[InlineData ((KeyCode)'英', false, ConsoleKey.None, '英')]
312+
[InlineData (KeyCode.Enter, true, ConsoleKey.Enter, '\r')]
310313
public void MapKeyCodeToConsoleKey_GetKeyCharFromUnicodeChar (KeyCode keyCode, bool expectedIsConsoleKey, ConsoleKey expectedConsoleKey, char expectedConsoleKeyChar)
311314
{
312315
var modifiers = ConsoleKeyMapping.MapToConsoleModifiers (keyCode);

0 commit comments

Comments
 (0)