diff --git a/src/osgViewer/CompositeViewer.cpp b/src/osgViewer/CompositeViewer.cpp index 60073adb5..dbf72c7a2 100644 --- a/src/osgViewer/CompositeViewer.cpp +++ b/src/osgViewer/CompositeViewer.cpp @@ -1024,18 +1024,16 @@ void CompositeViewer::eventTraversal() { osgGA::GUIEventAdapter* event = itr->get(); - bool handled = false; - if (view->getCameraManipulator()) { - view->getCameraManipulator()->handle( *event, *view); + if (view->getCameraManipulator()->handle( *event, *view)) event->setHandled(true); } for(View::EventHandlers::iterator hitr = view->getEventHandlers().begin(); - hitr != view->getEventHandlers().end() && !handled; + hitr != view->getEventHandlers().end(); ++hitr) { - handled = (*hitr)->handle( *event, *view, 0, 0); + if ((*hitr)->handle( *event, *view, 0, 0)) event->setHandled(true); } } } @@ -1056,14 +1054,10 @@ void CompositeViewer::eventTraversal() { osgGA::GUIEventAdapter* event = itr->get(); - bool handled = false; - _eventVisitor->reset(); _eventVisitor->addEvent( event ); view->getSceneData()->accept(*_eventVisitor); - - if (_eventVisitor->getEventHandled()) handled = true; } } } diff --git a/src/osgViewer/SimpleViewer.cpp b/src/osgViewer/SimpleViewer.cpp index 4bd6fa554..244b62ce4 100644 --- a/src/osgViewer/SimpleViewer.cpp +++ b/src/osgViewer/SimpleViewer.cpp @@ -162,29 +162,26 @@ void SimpleViewer::eventTraversal() { osgGA::GUIEventAdapter* event = itr->get(); - bool handled = false; + if (_cameraManipulator.valid()) + { + if (_cameraManipulator->handle( *event, *this )) event->setHandled(true); + } + for(EventHandlers::iterator hitr = _eventHandlers.begin(); + hitr != _eventHandlers.end(); + ++hitr) + { + if ((*hitr)->handle( *event, *this, 0, 0)) event->setHandled(true); + } + if (_eventVisitor.valid() && getSceneData()) { _eventVisitor->reset(); _eventVisitor->addEvent( event ); getSceneData()->accept(*_eventVisitor); - - if (_eventVisitor->getEventHandled()) handled = true; } - if (_cameraManipulator.valid()) - { - _cameraManipulator->handle( *event, *this ); - } - - for(EventHandlers::iterator hitr = _eventHandlers.begin(); - hitr != _eventHandlers.end() && !handled; - ++hitr) - { - handled = (*hitr)->handle( *event, *this, 0, 0); - } } } diff --git a/src/osgViewer/Viewer.cpp b/src/osgViewer/Viewer.cpp index 3f8bfcdaf..9a7b88809 100644 --- a/src/osgViewer/Viewer.cpp +++ b/src/osgViewer/Viewer.cpp @@ -1075,18 +1075,16 @@ void Viewer::eventTraversal() { osgGA::GUIEventAdapter* event = itr->get(); - bool handled = false; - if (_cameraManipulator.valid()) { - _cameraManipulator->handle( *event, *this); + if (_cameraManipulator->handle( *event, *this)) event->setHandled(true); } for(EventHandlers::iterator hitr = _eventHandlers.begin(); - hitr != _eventHandlers.end() && !handled; + hitr != _eventHandlers.end(); ++hitr) { - handled = (*hitr)->handle( *event, *this, 0, 0); + if ((*hitr)->handle( *event, *this, 0, 0)) event->setHandled(true); } } @@ -1101,18 +1099,13 @@ void Viewer::eventTraversal() { osgGA::GUIEventAdapter* event = itr->get(); - bool handled = false; - _eventVisitor->reset(); _eventVisitor->addEvent( event ); getSceneData()->accept(*_eventVisitor); - - if (_eventVisitor->getEventHandled()) handled = true; } } - if (getStats()) {