statsHandler->setKeyEventPrintsOutStats(printStatsKey);
statsEvent->setEventType(GUIEventAdapter::KEYDOWN);
-#if 0
- // We have to implement numlock too.
+ // OSG reports KeyPad keycodes independent of the NumLock modifier.
+ // KP-4/KP-Left is always KEY_KP_Left (ff96), so we have to generate
+ // the locked keys ourselves.
numlockKeyMap[GUIEventAdapter::KEY_KP_Insert] = '0';
numlockKeyMap[GUIEventAdapter::KEY_KP_End] = '1';
numlockKeyMap[GUIEventAdapter::KEY_KP_Down] = '2';
numlockKeyMap[GUIEventAdapter::KEY_KP_Home] = '7';
numlockKeyMap[GUIEventAdapter::KEY_KP_Up] = '8';
numlockKeyMap[GUIEventAdapter::KEY_KP_Page_Up] = '9';
-#endif
for (int i = 0; i < 128; i++)
release_keys[i] = i;
}
osgGA::GUIEventAdapter::EventType eventType = ea.getEventType();
-#if 0
std::map<int, int>::iterator numPadIter = numlockKeyMap.find(key);
if (numPadIter != numlockKeyMap.end()) {
key = numPadIter->second;
}
}
-#endif
+
modifiers = osgToFGModifiers(ea.getModKeyMask());
currentModifiers = modifiers;
if (eventType == osgGA::GUIEventAdapter::KEYUP)
osg::ref_ptr<osgGA::GUIEventAdapter> statsEvent;
int statsType;
int currentModifiers;
-#if 0
std::map<int, int> numlockKeyMap;
-#endif
osg::Vec3d position;
osg::Quat attitude;
void handleKey(const osgGA::GUIEventAdapter& ea, int& key, int& modifiers);