diff --git a/src/osgViewer/View.cpp b/src/osgViewer/View.cpp index 195229ae0..40e67d49c 100644 --- a/src/osgViewer/View.cpp +++ b/src/osgViewer/View.cpp @@ -105,12 +105,14 @@ void View::setUpViewAcrossAllScreens() if (gw) { osg::notify(osg::INFO)<<" GraphicsWindow has been created successfully."<getEventQueue()->getCurrentEventState()->setWindowRectangle(0, 0, width, height ); } else { osg::notify(osg::NOTICE)<<" GraphicsWindow has not been created successfully."<setViewport(new osg::Viewport(0, 0, width, height)); } else @@ -147,6 +149,7 @@ void View::setUpViewAcrossAllScreens() { osg::notify(osg::INFO)<<" GraphicsWindow has been created successfully."<getEventQueue()->getCurrentEventState()->setWindowRectangle(0, 0, width, height ); gw->getEventQueue()->setUseFixedMouseInputRange(true); gw->getEventQueue()->getCurrentEventState()->setInputRange(inputRangeMinX, inputRangeMinY, inputRangeMinX+float(width),inputRangeMinY+float(height) ); inputRangeMinX += float(width); diff --git a/src/osgViewer/Viewer.cpp b/src/osgViewer/Viewer.cpp index 358422b96..b027371dd 100644 --- a/src/osgViewer/Viewer.cpp +++ b/src/osgViewer/Viewer.cpp @@ -299,8 +299,12 @@ void Viewer::frameEventTraversal() ++itr) { osgGA::GUIEventAdapter* event = itr->get(); - event->setInputRange(eventState->getXmin(), eventState->getYmin(), eventState->getXmax(), eventState->getYmax()); - + + if (getEventQueue()->getUseFixedMouseInputRange()) + { + event->setInputRange(eventState->getXmin(), eventState->getYmin(), eventState->getXmax(), eventState->getYmax()); + } + switch(event->getEventType()) { case(osgGA::GUIEventAdapter::PUSH): @@ -310,12 +314,17 @@ void Viewer::frameEventTraversal() eventState->setX(event->getX()); eventState->setY(event->getY()); eventState->setButtonMask(event->getButtonMask()); + // osg::notify(osg::NOTICE)<<" mouse x = "<getX()<<" y="<getY()<