diff --git a/src/osgGA/StandardManipulator.cpp b/src/osgGA/StandardManipulator.cpp index 61dfe17a2..b83dc3031 100644 --- a/src/osgGA/StandardManipulator.cpp +++ b/src/osgGA/StandardManipulator.cpp @@ -438,11 +438,14 @@ bool StandardManipulator::performMovement() // call appropriate methods unsigned int buttonMask = _ga_t1->getButtonMask(); + unsigned int ModKeyMask = _ga_t1->getModKeyMask(); if( buttonMask == GUIEventAdapter::LEFT_MOUSE_BUTTON ) { return performMovementLeftMouseButton( eventTimeDelta, dx, dy ); } else if( buttonMask == GUIEventAdapter::MIDDLE_MOUSE_BUTTON || + ( buttonMask == GUIEventAdapter::RIGHT_MOUSE_BUTTON && + ModKeyMask & GUIEventAdapter::MODKEY_CTRL ) || buttonMask == (GUIEventAdapter::LEFT_MOUSE_BUTTON | GUIEventAdapter::RIGHT_MOUSE_BUTTON) ) { return performMovementMiddleMouseButton( eventTimeDelta, dx, dy );