From c05c3dad43e34dda854a39ebfa13d59529767466 Mon Sep 17 00:00:00 2001 From: Gaspar Capello Date: Thu, 13 Sep 2018 15:02:07 -0300 Subject: [PATCH] Enhancement canvas mirror sides (fix #1826) --- src/app/ui/editor/select_box_state.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/app/ui/editor/select_box_state.cpp b/src/app/ui/editor/select_box_state.cpp index 81dec3a47..47b0602a6 100644 --- a/src/app/ui/editor/select_box_state.cpp +++ b/src/app/ui/editor/select_box_state.cpp @@ -141,10 +141,22 @@ bool SelectBoxState::onMouseMove(Editor* editor, MouseMessage* msg) for (int i : m_movingRulers) { Ruler& ruler = m_rulers[i]; const Ruler& start = m_startRulers[i]; + int oppositeRuler = i^1;// 0 and 1 are opposites, and 2 and 3 + Ruler& oppRuler = m_rulers[oppositeRuler]; switch (ruler.orientation()) { - case Ruler::Horizontal: ruler.setPosition(start.position() + delta.y); break; - case Ruler::Vertical: ruler.setPosition(start.position() + delta.x); break; + case Ruler::Horizontal: + ruler.setPosition(start.position() + delta.y); + if (msg->modifiers() == os::kKeyShiftModifier) + oppRuler.setPosition(editor->sprite()->height() + - start.position() - delta.y); + break; + case Ruler::Vertical: + ruler.setPosition(start.position() + delta.x); + if (msg->modifiers() == os::kKeyShiftModifier) + oppRuler.setPosition(editor->sprite()->width() + - start.position() - delta.x); + break; } } used = true;