aboutsummaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
Diffstat (limited to 'win32')
-rw-r--r--win32/termios.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/win32/termios.c b/win32/termios.c
index e2dc96361..34a17bbfd 100644
--- a/win32/termios.c
+++ b/win32/termios.c
@@ -31,6 +31,12 @@ int64_t FAST_FUNC read_key(int fd, char *buf, int timeout UNUSED_PARAM)
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 DWORD state = record.Event.KeyEvent.dwControlKeyState;
34
35 if (state & (RIGHT_CTRL_PRESSED|LEFT_CTRL_PRESSED) &&
36 (record.Event.KeyEvent.wVirtualKeyCode >= 'A' &&
37 record.Event.KeyEvent.wVirtualKeyCode <= 'Z'))
38 return record.Event.KeyEvent.wVirtualKeyCode & ~0x40;
39
34 switch (record.Event.KeyEvent.wVirtualKeyCode) { 40 switch (record.Event.KeyEvent.wVirtualKeyCode) {
35 case VK_DELETE: return KEYCODE_DELETE; 41 case VK_DELETE: return KEYCODE_DELETE;
36 case VK_INSERT: return KEYCODE_INSERT; 42 case VK_INSERT: return KEYCODE_INSERT;