From fd6f5c87b84b8ddc6c9b3b0119496f9ec2c02fe1 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 24 Jan 2007 12:28:18 +0000 Subject: [PATCH] Added support for GUIEventAdapter::setHandled --- src/osgViewer/CompositeViewer.cpp | 12 +++--------- src/osgViewer/SimpleViewer.cpp | 25 +++++++++++-------------- src/osgViewer/Viewer.cpp | 13 +++---------- 3 files changed, 17 insertions(+), 33 deletions(-) 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()) {