diff --git a/include/osgProducer/KeyboardMouseCallback b/include/osgProducer/KeyboardMouseCallback index 24ffa96d6..03f8a5465 100644 --- a/include/osgProducer/KeyboardMouseCallback +++ b/include/osgProducer/KeyboardMouseCallback @@ -54,6 +54,10 @@ class OSGPRODUCER_EXPORT KeyboardMouseCallback : public Producer::KeyboardMouseC virtual void specialKeyRelease( Producer::KeyCharacter key); + void setEscapeSetDone(bool esc) { _escapeKeySetsDone = esc; } + bool getEscapeSetDone() const { return _escapeKeySetsDone; } + + // local methods and members typedef std::vector< osg::ref_ptr > EventQueue; diff --git a/src/osgProducer/Viewer.cpp b/src/osgProducer/Viewer.cpp index f1149ed8e..e9d9fb6f4 100644 --- a/src/osgProducer/Viewer.cpp +++ b/src/osgProducer/Viewer.cpp @@ -293,6 +293,11 @@ void Viewer::requestWarpPointer(int x,int y) void Viewer::getUsage(osg::ApplicationUsage& usage) const { + if (_kbmcb && _kbmcb->getEscapeSetDone()) + { + usage.addKeyboardMouseBinding("Escape","Exit the application"); + } + for(EventHandlerList::const_iterator itr=_eventHandlerList.begin(); itr!=_eventHandlerList.end(); ++itr) diff --git a/src/osgProducer/ViewerEventHandler.cpp b/src/osgProducer/ViewerEventHandler.cpp index 8d62e76cf..082491737 100644 --- a/src/osgProducer/ViewerEventHandler.cpp +++ b/src/osgProducer/ViewerEventHandler.cpp @@ -735,8 +735,7 @@ bool ViewerEventHandler::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActio } case osgGA::GUIEventAdapter::KEY_Help : - case '/' : - case '?' : + case 'h' : { setDisplayHelp(!getDisplayHelp()); return true; @@ -759,7 +758,7 @@ void ViewerEventHandler::accept(osgGA::GUIEventHandlerVisitor& gehv) void ViewerEventHandler::getUsage(osg::ApplicationUsage& usage) const { usage.addKeyboardMouseBinding("f","Toggle fullscreen"); - usage.addKeyboardMouseBinding("?","Display help"); + usage.addKeyboardMouseBinding("h","Display help"); usage.addKeyboardMouseBinding("o","Write scene graph to file"); usage.addKeyboardMouseBinding("s","Toggle intrumention"); usage.addKeyboardMouseBinding("v","Toggle block and vsync");