From fc11f0cef175a7bfd652691d05f3e19147462cb1 Mon Sep 17 00:00:00 2001 From: Nguyễn Thái Ngọc Duy Date: Tue, 14 Sep 2010 16:47:04 +1000 Subject: win32: read_key: imap some movement keys to KEYCODE_* --- win32/termios.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/win32/termios.c b/win32/termios.c index 1bd3cbd5b..812f6d5d7 100644 --- a/win32/termios.c +++ b/win32/termios.c @@ -29,8 +29,24 @@ int64_t FAST_FUNC read_key(int fd, char *buf, int timeout UNUSED_PARAM) goto done; if (record.EventType != KEY_EVENT || !record.Event.KeyEvent.bKeyDown) continue; - if (!record.Event.KeyEvent.uChar.AsciiChar) + if (!record.Event.KeyEvent.uChar.AsciiChar) { + switch (record.Event.KeyEvent.wVirtualKeyCode) { + case VK_UP: return KEYCODE_UP; + case VK_DOWN: return KEYCODE_DOWN; + case VK_RIGHT: return KEYCODE_RIGHT; + case VK_LEFT: return KEYCODE_LEFT; + case VK_HOME: return KEYCODE_HOME; + case VK_END: return KEYCODE_END; + case VK_CAPITAL: + case VK_SHIFT: + case VK_CONTROL: + case VK_MENU: + break; + default: + return -1; + } continue; + } ret = record.Event.KeyEvent.uChar.AsciiChar; break; } -- cgit v1.2.3-55-g6feb