diff --git a/examples/osgcluster/osgcluster.cpp b/examples/osgcluster/osgcluster.cpp index 8a42bea82..c78c4db8e 100644 --- a/examples/osgcluster/osgcluster.cpp +++ b/examples/osgcluster/osgcluster.cpp @@ -408,6 +408,22 @@ void CameraPacket::readEventQueue(osgViewer::Viewer& viewer) { _events.clear(); + osgViewer::ViewerBase::Contexts contexts; + viewer.getContexts(contexts); + + for(osgViewer::ViewerBase::Contexts::iterator citr =contexts.begin(); citr != contexts.end(); ++citr) + { + osgGA::EventQueue::Events gw_events; + + osgViewer::GraphicsWindow* gw = dynamic_cast(*citr); + if (gw) + { + gw->checkEvents(); + gw->getEventQueue()->copyEvents(gw_events); + } + _events.insert(_events.end(), gw_events.begin(), gw_events.end()); + } + viewer.getEventQueue()->copyEvents(_events); osg::notify(osg::INFO)<<"written events = "<<_events.size()<