Fix the linux keyboard.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4951 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Glenn Rice 2010-01-24 18:23:47 +00:00
parent cb47eb27cc
commit b17c5f3cf3
4 changed files with 14 additions and 5 deletions

View file

@ -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;

View file

@ -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);

View file

@ -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;

View file

@ -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)