Changeset 8291
- Timestamp:
- 05/08/08 18:45:59
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
OpenSceneGraph/trunk/include/osgViewer/api/X11/GraphicsWindowX11
r7978 r8291 170 170 int getModifierMask() const; 171 171 void syncLocks(); 172 void flushKeyEvents(); 172 173 173 174 bool _valid; OpenSceneGraph/trunk/src/osgViewer/GraphicsWindowX11.cpp
r8079 r8291 994 994 case FocusIn : 995 995 osg::notify(osg::INFO)<<"FocusIn event received"<<std::endl; 996 flushKeyEvents(); 996 997 break; 997 998 … … 1039 1040 syncLocks(); 1040 1041 1042 char keyMap[32]; 1043 XQueryKeymap(_eventDisplay, keyMap); 1044 1041 1045 // release normal (non-modifier) keys 1042 1046 for (unsigned int key = 8; key < 256; key++) … … 1044 1048 bool isModifier = keyMapGetKey(modMap, key); 1045 1049 if (isModifier) continue; 1046 bool isPressed = keyMapGetKey( ev.xkeymap.key_vector, key);1050 bool isPressed = keyMapGetKey(keyMap, key); 1047 1051 if (!isPressed) forceKey(key, eventTime, false); 1048 1052 } … … 1053 1057 bool isModifier = keyMapGetKey(modMap, key); 1054 1058 if (!isModifier) continue; 1055 bool isPressed = keyMapGetKey( ev.xkeymap.key_vector, key);1059 bool isPressed = keyMapGetKey(keyMap, key); 1056 1060 forceKey(key, eventTime, isPressed); 1057 1061 } … … 1062 1066 bool isModifier = keyMapGetKey(modMap, key); 1063 1067 if (isModifier) continue; 1064 bool isPressed = keyMapGetKey( ev.xkeymap.key_vector, key);1068 bool isPressed = keyMapGetKey(keyMap, key); 1065 1069 if (isPressed) forceKey(key, eventTime, true); 1066 1070 } … … 1386 1390 } 1387 1391 1392 void GraphicsWindowX11::flushKeyEvents() 1393 { 1394 XEvent e; 1395 while (XCheckMaskEvent(_eventDisplay, KeyPressMask|KeyReleaseMask, &e)) 1396 continue; 1397 } 1398 1388 1399 // Returns char[32] keymap with bits for every modifier key set. 1389 1400 void GraphicsWindowX11::getModifierMap(char* keymap) const
