Fixed numpad keys on linux.

Patches ported from upstream irrlicht.
This commit is contained in:
Deve 2015-01-04 16:07:31 +01:00
parent f672bbb77e
commit 752ad0e456

View File

@ -1322,7 +1322,7 @@ bool CIrrDeviceLinux::run()
irrevent.KeyInput.Control = (event.xkey.state & ControlMask) != 0;
irrevent.KeyInput.Shift = (event.xkey.state & ShiftMask) != 0;
event.xkey.state = 0; // ignore shift-ctrl states for figuring out the key
event.xkey.state &= ~(ControlMask|ShiftMask); // ignore shift-ctrl states for figuring out the key
XLookupString(&event.xkey, buf, sizeof(buf), &mp.X11Key, NULL);
const s32 idx = KeyMap.binary_search(mp);
if (idx != -1)
@ -1793,7 +1793,7 @@ void CIrrDeviceLinux::createKeyMap()
// I find a better version.
#ifdef _IRR_COMPILE_WITH_X11_
KeyMap.reallocate(84);
KeyMap.reallocate(190);
KeyMap.push_back(SKeyMap(XK_BackSpace, KEY_BACK));
KeyMap.push_back(SKeyMap(XK_Tab, KEY_TAB));
KeyMap.push_back(SKeyMap(XK_ISO_Left_Tab, KEY_TAB));
@ -1846,16 +1846,16 @@ void CIrrDeviceLinux::createKeyMap()
KeyMap.push_back(SKeyMap(XK_KP_Subtract, KEY_SUBTRACT));
KeyMap.push_back(SKeyMap(XK_KP_Decimal, KEY_DECIMAL));
KeyMap.push_back(SKeyMap(XK_KP_Divide, KEY_DIVIDE));
KeyMap.push_back(SKeyMap(XK_KP_0, KEY_KEY_0));
KeyMap.push_back(SKeyMap(XK_KP_1, KEY_KEY_1));
KeyMap.push_back(SKeyMap(XK_KP_2, KEY_KEY_2));
KeyMap.push_back(SKeyMap(XK_KP_3, KEY_KEY_3));
KeyMap.push_back(SKeyMap(XK_KP_4, KEY_KEY_4));
KeyMap.push_back(SKeyMap(XK_KP_5, KEY_KEY_5));
KeyMap.push_back(SKeyMap(XK_KP_6, KEY_KEY_6));
KeyMap.push_back(SKeyMap(XK_KP_7, KEY_KEY_7));
KeyMap.push_back(SKeyMap(XK_KP_8, KEY_KEY_8));
KeyMap.push_back(SKeyMap(XK_KP_9, KEY_KEY_9));
KeyMap.push_back(SKeyMap(XK_KP_0, KEY_NUMPAD0));
KeyMap.push_back(SKeyMap(XK_KP_1, KEY_NUMPAD1));
KeyMap.push_back(SKeyMap(XK_KP_2, KEY_NUMPAD2));
KeyMap.push_back(SKeyMap(XK_KP_3, KEY_NUMPAD3));
KeyMap.push_back(SKeyMap(XK_KP_4, KEY_NUMPAD4));
KeyMap.push_back(SKeyMap(XK_KP_5, KEY_NUMPAD5));
KeyMap.push_back(SKeyMap(XK_KP_6, KEY_NUMPAD6));
KeyMap.push_back(SKeyMap(XK_KP_7, KEY_NUMPAD7));
KeyMap.push_back(SKeyMap(XK_KP_8, KEY_NUMPAD8));
KeyMap.push_back(SKeyMap(XK_KP_9, KEY_NUMPAD9));
KeyMap.push_back(SKeyMap(XK_F1, KEY_F1));
KeyMap.push_back(SKeyMap(XK_F2, KEY_F2));
KeyMap.push_back(SKeyMap(XK_F3, KEY_F3));