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