From 9e25f7ab9dc4b246a302af398373f3ea0b9cbc19 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 22 Apr 2016 18:20:38 +0300 Subject: [PATCH] Add alignment to resize. --- src/uxbox/ui/workspace/resize.cljs | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/uxbox/ui/workspace/resize.cljs b/src/uxbox/ui/workspace/resize.cljs index e60e5158f0..cda43a9fc2 100644 --- a/src/uxbox/ui/workspace/resize.cljs +++ b/src/uxbox/ui/workspace/resize.cljs @@ -10,7 +10,8 @@ [uxbox.rstore :as rs] [uxbox.data.shapes :as uds] [uxbox.ui.core :as uuc] - [uxbox.ui.workspace.base :as uuwb] + [uxbox.ui.workspace.base :as wb] + [uxbox.ui.workspace.align :as align] [uxbox.util.geom.point :as gpt])) (declare initialize) @@ -33,11 +34,21 @@ stoper (->> uuc/actions-s (rx/map :type) (rx/filter #(empty? %)) - (rx/take 1))] - (as-> uuwb/mouse-delta-s $ - (rx/take-until stoper $) - (rx/with-latest-from vector uuwb/mouse-ctrl-s $) - (rx/subscribe $ #(handle-resize payload %))))) + (rx/take 1)) + + align? @wb/alignment-l + stream (->> wb/mouse-viewport-s + (rx/sample 10) + (rx/mapcat (fn [point] + (if align? + (align/translate point) + (rx/of point)))) + (rx/buffer 2 1) + (rx/map wb/coords-delta) + (rx/take-until stoper) + (rx/map #(gpt/divide % @wb/zoom-l)) + (rx/with-latest-from vector wb/mouse-ctrl-s))] + (rx/subscribe stream #(handle-resize payload %)))) (defn- handle-resize [{:keys [vid shape]} [delta ctrl?]]