diff --git a/GLViewer/NavigationControl.cpp b/GLViewer/NavigationControl.cpp index 9134e8c0f24144d4ee34bbbc43275427ee7d1b8a..5af0978210a16c85fe63de25173dc3f2f4e7ec14 100644 --- a/GLViewer/NavigationControl.cpp +++ b/GLViewer/NavigationControl.cpp @@ -103,7 +103,11 @@ void GLViewer::NavigationControl::wheelEvent( double delta, QWheelEvent* evt ) { GLViewer &v = *GetViewer(); - delta *= -0.0005 * v.distToFocusPoint(); + delta *= -0.0005; + if( delta < 0.0 ) + delta = delta / (1.0-delta); + + delta *= v.distToFocusPoint(); if( v.distToFocusPoint() + delta > 0.0 ) v.setDistToFocusPoint( v.distToFocusPoint() + delta );