From e19119cae2a12c4b054c9207a448749039feb751 Mon Sep 17 00:00:00 2001 From: David Capello Date: Tue, 3 Sep 2019 16:34:47 -0300 Subject: [PATCH] Keep rotation angle inside -180...180 range when using Edit > Rotate commands --- laf | 2 +- src/app/ui/editor/pixels_movement.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/laf b/laf index 398bcf8ed..3431eef73 160000 --- a/laf +++ b/laf @@ -1 +1 @@ -Subproject commit 398bcf8ed588c63027beb80b107243e530f3a955 +Subproject commit 3431eef7376429fefbde651e484a8d807628ded1 diff --git a/src/app/ui/editor/pixels_movement.cpp b/src/app/ui/editor/pixels_movement.cpp index 9694f5319..6af623aa9 100644 --- a/src/app/ui/editor/pixels_movement.cpp +++ b/src/app/ui/editor/pixels_movement.cpp @@ -164,7 +164,9 @@ void PixelsMovement::flipImage(doc::algorithm::FlipType flipType) void PixelsMovement::rotate(double angle) { ContextWriter writer(m_reader, 1000); - m_currentData.angle(m_currentData.angle() + PI * -angle / 180.0); + m_currentData.angle( + base::fmod_radians( + m_currentData.angle() + PI * -angle / 180.0)); m_document->setTransformation(m_currentData); @@ -399,9 +401,7 @@ void PixelsMovement::moveImage(const gfx::Point& pos, MoveModifier moveModifier) - atan2((double)(-m_catchPos.y + abs_initial_pivot.y), (double)(+m_catchPos.x - abs_initial_pivot.x)); - // Put the angle in -180 to 180 range. - while (newAngle < -PI) newAngle += 2*PI; - while (newAngle > PI) newAngle -= 2*PI; + newAngle = base::fmod_radians(newAngle); // Is the "angle snap" is activated, we've to snap the angle // to common (pixel art) angles.