diff --git a/toonz/sources/toonz/sceneviewerevents.cpp b/toonz/sources/toonz/sceneviewerevents.cpp index 692dd85..06c61fe 100644 --- a/toonz/sources/toonz/sceneviewerevents.cpp +++ b/toonz/sources/toonz/sceneviewerevents.cpp @@ -884,33 +884,17 @@ void SceneViewer::gestureEvent(QGestureEvent *e) { m_scaleFactor = 0.0; m_rotationDelta = 0.0; } else { - if (changeFlags & QPinchGesture::RotationAngleChanged) { - qreal rotationDelta = - gesture->rotationAngle() - gesture->lastRotationAngle(); - TAffine aff = getViewMatrix().inv(); - TPointD center = aff * TPointD(0, 0); - if (!m_rotating && !m_zooming) { - m_rotationDelta += rotationDelta; - double absDelta = abs(m_rotationDelta); - if (absDelta >= 10) { - m_rotating = true; - } - } - if (m_rotating) { - rotate(center, -rotationDelta); - } - } if (changeFlags & QPinchGesture::ScaleFactorChanged) { double scaleFactor = gesture->scaleFactor(); // the scale factor makes for too sensitive scaling // divide the change in half if (scaleFactor > 1) { double decimalValue = scaleFactor - 1; - decimalValue /= 3; + decimalValue /= 1.5; scaleFactor = 1 + decimalValue; } else if (scaleFactor < 1) { double decimalValue = 1 - scaleFactor; - decimalValue /= 3; + decimalValue /= 1.5; scaleFactor = 1 - decimalValue; } if (!m_rotating && !m_zooming) { @@ -925,6 +909,23 @@ void SceneViewer::gestureEvent(QGestureEvent *e) { } m_gestureActive = true; } + if (changeFlags & QPinchGesture::RotationAngleChanged) { + qreal rotationDelta = + gesture->rotationAngle() - gesture->lastRotationAngle(); + TAffine aff = getViewMatrix().inv(); + TPointD center = aff * TPointD(0, 0); + if (!m_rotating && !m_zooming) { + m_rotationDelta += rotationDelta; + double absDelta = abs(m_rotationDelta); + if (absDelta >= 10) { + m_rotating = true; + } + } + if (m_rotating) { + rotate(center, -rotationDelta); + } + } + if (changeFlags & QPinchGesture::CenterPointChanged) { QPointF centerDelta = (gesture->centerPoint() * getDevPixRatio()) - (gesture->lastCenterPoint() * getDevPixRatio());