From 285be7f5ff37ac1f4357e59cc66ae205651cf0fb Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 27 Apr 2020 07:55:30 +0200 Subject: [PATCH] :sparkles: Maintain proportions when control key is pressed --- frontend/src/uxbox/main/data/workspace/transforms.cljs | 2 ++ frontend/src/uxbox/main/ui/workspace/drawarea.cljs | 3 ++- frontend/src/uxbox/util/debug.cljs | 10 ++++++---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/frontend/src/uxbox/main/data/workspace/transforms.cljs b/frontend/src/uxbox/main/data/workspace/transforms.cljs index 3ff95c23c..88a9cba53 100644 --- a/frontend/src/uxbox/main/data/workspace/transforms.cljs +++ b/frontend/src/uxbox/main/data/workspace/transforms.cljs @@ -84,6 +84,8 @@ ;; Resize vector scalev (gpt/divide (gpt/add shapev deltav) shapev) + scalev (if lock? (let [v (max (:x scalev) (:y scalev))] (gpt/point v v)) scalev) + shape-transform (:transform shape (gmt/matrix)) shape-transform-inverse (:transform-inverse shape (gmt/matrix)) diff --git a/frontend/src/uxbox/main/ui/workspace/drawarea.cljs b/frontend/src/uxbox/main/ui/workspace/drawarea.cljs index 2c9c9562e..555428c17 100644 --- a/frontend/src/uxbox/main/ui/workspace/drawarea.cljs +++ b/frontend/src/uxbox/main/ui/workspace/drawarea.cljs @@ -120,7 +120,8 @@ (let [shape' (geom/shape->rect-shape shape) shapev (gpt/point (:width shape') (:height shape')) deltav (gpt/subtract point initial) - scalev (gpt/divide (gpt/add shapev deltav) shapev)] + scalev (gpt/divide (gpt/add shapev deltav) shapev) + scalev (if lock? (let [v (max (:x scalev) (:y scalev))] (gpt/point v v)) scalev)] (-> shape (assoc-in [:modifiers :resize-vector] scalev) diff --git a/frontend/src/uxbox/util/debug.cljs b/frontend/src/uxbox/util/debug.cljs index 5aeef407d..5fb3a09bc 100644 --- a/frontend/src/uxbox/util/debug.cljs +++ b/frontend/src/uxbox/util/debug.cljs @@ -1,5 +1,7 @@ (ns uxbox.util.debug - "Debugging utils") + "Debugging utils" + (:require + [uxbox.main.store :as store])) (def debug-options #{:bounding-boxes :group :events #_:simple-selection}) @@ -30,8 +32,8 @@ val)) (defn dump-state [] - (logjs "state" @uxbox.main.store/state)) + (logjs "state" @store/state)) (defn dump-objects [] - (let [page-id (get @uxbox.main.store/state :page-id)] - (logjs "state" (get-in @uxbox.main.store/state [:workspace-data page-id :objects])))) + (let [page-id (get @store/state :page-id)] + (logjs "state" (get-in @store/state [:workspace-data page-id :objects]))))