From b17c5f3cf3e8f82c6b38d786ab8c1d169d85b2f0 Mon Sep 17 00:00:00 2001 From: Glenn Rice Date: Sun, 24 Jan 2010 18:23:47 +0000 Subject: Fix the linux keyboard. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4951 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/InputCommon/Src/X11InputBase.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'Source/Core/InputCommon/Src/X11InputBase.cpp') diff --git a/Source/Core/InputCommon/Src/X11InputBase.cpp b/Source/Core/InputCommon/Src/X11InputBase.cpp index c4b7c81e4e..f9ffd168db 100644 --- a/Source/Core/InputCommon/Src/X11InputBase.cpp +++ b/Source/Core/InputCommon/Src/X11InputBase.cpp @@ -99,7 +99,15 @@ KeySym wxCharCodeWXToX(int id) case WXK_F24: keySym = XK_F24; break; case WXK_NUMLOCK: keySym = XK_Num_Lock; break; case WXK_SCROLL: keySym = XK_Scroll_Lock; break; - default: keySym = id <= 255 ? (KeySym)id : 0; + // Input fix: Config dialogs read all alphabetic characters as UPPERCASE and + // saves the UPPERCASE keycodes. X11 reads these as lowercase by default. + default: + if (id >= 65 && id <= 90) + // Standard uppercase letter: return lowercase keycode + keySym = (KeySym)id + 32; + else + // All other keyboard characters + keySym = id <= 255 ? (KeySym)id : 0; } return keySym; -- cgit v1.2.3