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; diff --git a/Source/Plugins/Plugin_Wiimote/Src/ConfigPadDlg.cpp b/Source/Plugins/Plugin_Wiimote/Src/ConfigPadDlg.cpp index a0ce3728da..57143a3e5f 100644 --- a/Source/Plugins/Plugin_Wiimote/Src/ConfigPadDlg.cpp +++ b/Source/Plugins/Plugin_Wiimote/Src/ConfigPadDlg.cpp @@ -509,7 +509,8 @@ void WiimotePadConfigDialog::CreatePadGUIControls() }; // Configuration controls sizes - static const int TxtW = 50, TxtH = 20, BtW = 70, BtH = 20; + static const int BtW = 70, BtH = 20; +// static const int TxtW = 50, TxtH = 20; // These are never used. Will they ever be? // A small type font wxFont m_SmallFont(7, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL); diff --git a/Source/Plugins/Plugin_Wiimote/Src/EmuMain.cpp b/Source/Plugins/Plugin_Wiimote/Src/EmuMain.cpp index 3f541ee20f..699468875f 100644 --- a/Source/Plugins/Plugin_Wiimote/Src/EmuMain.cpp +++ b/Source/Plugins/Plugin_Wiimote/Src/EmuMain.cpp @@ -673,7 +673,7 @@ void ReadLinuxKeyboard() for (int i = 0; i < LAST_CONSTANT; i++) { - if (key == WiiMapping[g_ID].Button[i]) + if (((int) key) == WiiMapping[g_ID].Button[i]) KeyStatus[i] = true; } break; @@ -691,7 +691,7 @@ void ReadLinuxKeyboard() for (int i = 0; i < LAST_CONSTANT; i++) { - if (key == WiiMapping[g_ID].Button[i]) + if (((int) key) == WiiMapping[g_ID].Button[i]) KeyStatus[i] = false; } break; diff --git a/Source/Plugins/Plugin_Wiimote/Src/FillReport.cpp b/Source/Plugins/Plugin_Wiimote/Src/FillReport.cpp index fbdc5bbe20..e468a0f6bc 100644 --- a/Source/Plugins/Plugin_Wiimote/Src/FillReport.cpp +++ b/Source/Plugins/Plugin_Wiimote/Src/FillReport.cpp @@ -308,7 +308,7 @@ bool IsKey(int Key) #ifdef _WIN32 Ret = GetAsyncKeyState(MapKey); // Keyboard (Windows) #else - Ret = KeyStatus[MapKey]; // Keyboard (Linux) + Ret = KeyStatus[Key]; // Keyboard (Linux) #endif } else if (MapKey < 0x1100)