From 3de4c3d240667e75f11ef756f3651728352bcbd2 Mon Sep 17 00:00:00 2001 From: "J?rgen P. Tjern?" Date: Mon, 25 Feb 2013 16:52:52 -0800 Subject: [PATCH] sdl - fix win32 mapping of alpha-numeric keys after scancode changes --- src/video/windows/SDL_windowskeyboard.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/video/windows/SDL_windowskeyboard.c b/src/video/windows/SDL_windowskeyboard.c index 9dfc369c9..fd2510413 100644 --- a/src/video/windows/SDL_windowskeyboard.c +++ b/src/video/windows/SDL_windowskeyboard.c @@ -165,8 +165,12 @@ WIN_UpdateKeymap() } /* Don't allow the number keys right above the qwerty row to translate or the top left key (grave/backquote) */ /* not mapping numbers fixes the AZERTY layout (french) causing non-shifted number to appear by default */ - if ( ( scancode >= SDL_SCANCODE_1 && scancode <= SDL_SCANCODE_0 ) || - scancode == SDL_SCANCODE_GRAVE ) { + if ( scancode == SDL_SCANCODE_GRAVE ) { + keymap[scancode] = SDLK_BACKQUOTE; + continue; + } + if ( scancode >= SDL_SCANCODE_1 && scancode <= SDL_SCANCODE_0 ) { + keymap[scancode] = SDLK_1 + ( scancode - SDL_SCANCODE_1 ); continue; } @@ -175,7 +179,13 @@ WIN_UpdateKeymap() int ch; ch = (MapVirtualKey( vk, MAPVK_VK_TO_CHAR ) & 0x7FFF); if ( ch ) - keymap[scancode] = ch; + { + if ( ch >= 'A' && ch <= 'Z' ) + keymap[scancode] = SDLK_a + ( ch - 'A' ); + else + keymap[scancode] = ch; + } + } }