浏览代码

Do not try to map the number keys manually, should fix github.com issue 81.

Miguel de Icaza 7 年之前
父节点
当前提交
b1662455b1
共有 1 个文件被更改,包括 4 次插入3 次删除
  1. 4 3
      Terminal.Gui/Drivers/WindowsDriver.cs

+ 4 - 3
Terminal.Gui/Drivers/WindowsDriver.cs

@@ -510,6 +510,8 @@ namespace Terminal.Gui {
 			case WindowsConsole.EventType.Key:
 			case WindowsConsole.EventType.Key:
 				if (inputEvent.KeyEvent.bKeyDown == false)
 				if (inputEvent.KeyEvent.bKeyDown == false)
 					return;
 					return;
+				if (inputEvent.KeyEvent.UnicodeChar == 0)
+					return;
 				var map = MapKey (ToConsoleKeyInfo (inputEvent.KeyEvent));
 				var map = MapKey (ToConsoleKeyInfo (inputEvent.KeyEvent));
 				if (map == (Key)0xffffffff)
 				if (map == (Key)0xffffffff)
 					return;
 					return;
@@ -662,9 +664,8 @@ namespace Terminal.Gui {
 				var delta = key - ConsoleKey.D0;
 				var delta = key - ConsoleKey.D0;
 				if (keyInfo.Modifiers == ConsoleModifiers.Alt)
 				if (keyInfo.Modifiers == ConsoleModifiers.Alt)
 					return (Key)(((uint)Key.AltMask) | ((uint)'0' + delta));
 					return (Key)(((uint)Key.AltMask) | ((uint)'0' + delta));
-				if (keyInfo.Modifiers == ConsoleModifiers.Shift)
-					return (Key)((uint)keyInfo.KeyChar);
-				return (Key)((uint)'0' + delta);
+				
+				return (Key)((uint)keyInfo.KeyChar);
 			}
 			}
 			if (key >= ConsoleKey.F1 && key <= ConsoleKey.F10) {
 			if (key >= ConsoleKey.F1 && key <= ConsoleKey.F10) {
 				var delta = key - ConsoleKey.F1;
 				var delta = key - ConsoleKey.F1;