-bool wxGetKeyState(wxKeyCode key)
-{
- Display *pDisplay = wxApp::GetDisplay();
- int iKey = wxCharCodeWXToX(key);
- int iKeyMask = 0;
- Window wDummy1, wDummy2;
- int iDummy3, iDummy4, iDummy5, iDummy6;
- unsigned int iMask;
- XModifierKeymap* map = XGetModifierMapping(pDisplay);
- KeyCode keyCode = XKeysymToKeycode(pDisplay,iKey);
- if(keyCode == NoSymbol) return false;
- for(int i = 0; i < 8; ++i) {
- if( map->modifiermap[map->max_keypermod * i] == keyCode) {
- iKeyMask = 1 << i;
- }
- }
- XQueryPointer(pDisplay, DefaultRootWindow(pDisplay), &wDummy1, &wDummy2,
- &iDummy3, &iDummy4, &iDummy5, &iDummy6, &iMask );
- XFreeModifiermap(map);
- return (iMask & iKeyMask) != 0;
-}
-