diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-09-14 17:58:57 +1000 |
---|---|---|
committer | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-09-14 18:02:20 +1000 |
commit | 62822fc3b2cadf823d4d74be902c76e1af0b904a (patch) | |
tree | 4982ae1fe3fc6c4168a60d38fa7058236e0a0da4 | |
parent | d527acced45955fa83f0453e2c215b6cc1cad920 (diff) | |
download | busybox-w32-62822fc3b2cadf823d4d74be902c76e1af0b904a.tar.gz busybox-w32-62822fc3b2cadf823d4d74be902c76e1af0b904a.tar.bz2 busybox-w32-62822fc3b2cadf823d4d74be902c76e1af0b904a.zip |
win32: read_key: support Ctrl-{Left,Right}
-rw-r--r-- | win32/termios.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/win32/termios.c b/win32/termios.c index 812f6d5d7..0154bd11f 100644 --- a/win32/termios.c +++ b/win32/termios.c | |||
@@ -30,11 +30,18 @@ int64_t FAST_FUNC read_key(int fd, char *buf, int timeout UNUSED_PARAM) | |||
30 | if (record.EventType != KEY_EVENT || !record.Event.KeyEvent.bKeyDown) | 30 | if (record.EventType != KEY_EVENT || !record.Event.KeyEvent.bKeyDown) |
31 | continue; | 31 | continue; |
32 | if (!record.Event.KeyEvent.uChar.AsciiChar) { | 32 | if (!record.Event.KeyEvent.uChar.AsciiChar) { |
33 | DWORD state = record.Event.KeyEvent.dwControlKeyState; | ||
33 | switch (record.Event.KeyEvent.wVirtualKeyCode) { | 34 | switch (record.Event.KeyEvent.wVirtualKeyCode) { |
34 | case VK_UP: return KEYCODE_UP; | 35 | case VK_UP: return KEYCODE_UP; |
35 | case VK_DOWN: return KEYCODE_DOWN; | 36 | case VK_DOWN: return KEYCODE_DOWN; |
36 | case VK_RIGHT: return KEYCODE_RIGHT; | 37 | case VK_RIGHT: |
37 | case VK_LEFT: return KEYCODE_LEFT; | 38 | if (state & (RIGHT_CTRL_PRESSED|LEFT_CTRL_PRESSED)) |
39 | return KEYCODE_CTRL_RIGHT; | ||
40 | return KEYCODE_RIGHT; | ||
41 | case VK_LEFT: | ||
42 | if (state & (RIGHT_CTRL_PRESSED|LEFT_CTRL_PRESSED)) | ||
43 | return KEYCODE_CTRL_LEFT; | ||
44 | return KEYCODE_LEFT; | ||
38 | case VK_HOME: return KEYCODE_HOME; | 45 | case VK_HOME: return KEYCODE_HOME; |
39 | case VK_END: return KEYCODE_END; | 46 | case VK_END: return KEYCODE_END; |
40 | case VK_CAPITAL: | 47 | case VK_CAPITAL: |