video/win32_v.c
changeset 5108 dc67d70b5a45
parent 5090 8907f67c2c15
child 5112 9bb62a7fc166
--- a/video/win32_v.c	Thu Nov 16 20:57:23 2006 +0000
+++ b/video/win32_v.c	Thu Nov 16 22:05:33 2006 +0000
@@ -349,14 +349,15 @@
 		case WM_KEYDOWN: {
 			// this is the rewritten ascii input function
 			// it disables windows deadkey handling --> more linux like :D
-			WORD w = 0;
+			wchar_t w = 0;
 			byte ks[256];
 			uint scancode;
 			uint32 pressed_key;
 
 			GetKeyboardState(ks);
-			if (ToAscii(wParam, 0, ks, &w, 0) == 0) {
-				w = 0; // no translation was possible
+			if (ToUnicode(wParam, 0, ks, &w, 1, 0) == 0) {
+				/* On win9x ToUnicode always fails, so fall back to ToAscii */
+				if (ToAscii(wParam, 0, ks, &w, 0) == 0) w = 0; // no translation was possible
 			}
 
 			pressed_key = w | MapWindowsKey(wParam) << 16;