From 329f98c83b2f4f018a9b5dd7dc03dc9013036097 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 3 Jan 2012 15:59:19 +0000 Subject: [PATCH] Fixed the return value of SlideEventHandler::selectLayer() so that the 'n' now works correctly. --- src/osgPresentation/SlideEventHandler.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/osgPresentation/SlideEventHandler.cpp b/src/osgPresentation/SlideEventHandler.cpp index 77359493b..04ac6bc9e 100644 --- a/src/osgPresentation/SlideEventHandler.cpp +++ b/src/osgPresentation/SlideEventHandler.cpp @@ -1087,8 +1087,11 @@ bool SlideEventHandler::selectLayer(int layerNum) { if (!_slideSwitch) return false; + bool withinSlide = true; + if (layerNum>=static_cast(_slideSwitch->getNumChildren())) { + withinSlide = false; layerNum = LAST_POSITION; } @@ -1106,14 +1109,19 @@ bool SlideEventHandler::selectLayer(int layerNum) OSG_INFO<<"Selected layer '"<<_slideSwitch->getChild(_activeLayer)->getName()<<"' num="<<_activeLayer<< std::endl; - return true; + return withinSlide; } bool SlideEventHandler::nextLayerOrSlide() { - OSG_INFO<<"nextLayerOrSlide()"<(_slideSwitch->getNumChildren())) ? dynamic_cast(_slideSwitch->getChild(_activeLayer)->getUserData()) : 0; if (la) { @@ -1200,6 +1206,7 @@ bool SlideEventHandler::nextLayer() } } + OSG_INFO<<"nextLayer() calling selectLayer("<<_activeLayer+1<<")"<