From df331c8577802db4612009a531f9e5e5e4f14c4c Mon Sep 17 00:00:00 2001 From: deuce <> Date: Wed, 13 Oct 2004 21:19:42 +0000 Subject: [PATCH] Support ALT-Fx scancodes. --- src/conio/win32cio.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/conio/win32cio.c b/src/conio/win32cio.c index 9ba7020205..cfdfd6468a 100644 --- a/src/conio/win32cio.c +++ b/src/conio/win32cio.c @@ -179,10 +179,23 @@ int win32_keyboardio(int isgetch) OutputDebugString(str); #endif - if(input.Event.KeyEvent.dwControlKeyState & (LEFT_ALT_PRESSED|RIGHT_ALT_PRESSED) - && isalpha(input.Event.KeyEvent.uChar.AsciiChar)) { - lastch=altkeys[toupper(input.Event.KeyEvent.uChar.AsciiChar)-'A']<<8; - break; + if(input.Event.KeyEvent.dwControlKeyState & (LEFT_ALT_PRESSED|RIGHT_ALT_PRESSED)) { + if(isalpha(input.Event.KeyEvent.uChar.AsciiChar)) { + lastch=altkeys[toupper(input.Event.KeyEvent.uChar.AsciiChar)-'A']<<8; + break; + } + if(input.Event.KeyEvent.wVirtualScanCode >= CIO_KEY_F(1) + && input.Event.KeyEvent.wVirtualScanCode <= CIO_KEY_F(10)) { + /* Magic number to convert from Fx to ALT-Fx */ + lastch=input.Event.KeyEvent.wVirtualScanCode+45; + break; + } + if(input.Event.KeyEvent.wVirtualScanCode == CIO_KEY_F(11) + && input.Event.KeyEvent.wVirtualScanCode == CIO_KEY_F(12)) { + /* Magic number to convert from F(x>10) to ALT-Fx */ + lastch=input.Event.KeyEvent.wVirtualScanCode+6; + break; + } } if(input.Event.KeyEvent.uChar.AsciiChar) -- GitLab