diff --git a/examples/osgcompositeviewer/osgcompositeviewer.cpp b/examples/osgcompositeviewer/osgcompositeviewer.cpp index 4a2394f5c..7fe5184ce 100644 --- a/examples/osgcompositeviewer/osgcompositeviewer.cpp +++ b/examples/osgcompositeviewer/osgcompositeviewer.cpp @@ -125,6 +125,42 @@ public: }; +class EventHandler : public osgGA::GUIEventHandler { +public: + + EventHandler() {} + + ~EventHandler() {} + + bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa) + { + osgViewer::View* view = dynamic_cast(&aa); + if (!view) return false; + + switch(ea.getEventType()) + { + case(osgGA::GUIEventAdapter::KEYDOWN): + case(osgGA::GUIEventAdapter::KEYUP): + OSG_NOTICE<<"View "<setStateSet(view->getCamera()->getOrCreateStateSet()); view->addEventHandler( statesetManipulator.get() ); + + view->addEventHandler( new EventHandler()); } // view two @@ -234,6 +272,8 @@ int main( int argc, char **argv ) // add the handler for doing the picking view->addEventHandler(new PickHandler()); + + view->addEventHandler( new EventHandler()); } }