diff --git a/src/uxbox/ui/workspace/base.cljs b/src/uxbox/ui/workspace/base.cljs index 6b65f0ab7..34e9a13e1 100644 --- a/src/uxbox/ui/workspace/base.cljs +++ b/src/uxbox/ui/workspace/base.cljs @@ -59,7 +59,7 @@ (rx/merge $ (rx/of (gpt/point))) (rx/dedupe $))) -(defonce scroll +(defonce scroll-a (rx/to-atom scroll-s)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -83,6 +83,9 @@ (rx/map :canvas-coords) (rx/share))) +(defonce mouse-a + (rx/to-atom mouse-s)) + (defonce mouse-absolute-s (->> mouse-b (rx/filter #(= (:id %) (:id @page-l))) diff --git a/src/uxbox/ui/workspace/canvas/draw.cljs b/src/uxbox/ui/workspace/canvas/draw.cljs index 017913cf9..449b69c55 100644 --- a/src/uxbox/ui/workspace/canvas/draw.cljs +++ b/src/uxbox/ui/workspace/canvas/draw.cljs @@ -44,7 +44,7 @@ (define-once :drawing-subscriptions (letfn [(init-shape [shape] (let [{:keys [x y] :as point} (gpt/subtract @wb/mouse-position - @wb/scroll) + @wb/scroll-a) shape (sh/-initialize shape {:x1 x :y1 y :x2 x :y2 y})] (reset! +drawing-shape+ shape) @@ -58,7 +58,7 @@ (rx/subscribe $ on-value nil on-complete)))) (on-value [[pos ctrl?]] - (let [point (gpt/subtract pos @wb/scroll)] + (let [point (gpt/subtract pos @wb/scroll-a)] (reset! +drawing-position+ (assoc point :lock ctrl?)))) (on-complete [] @@ -71,7 +71,7 @@ (reset! +drawing-shape+ nil))) (init-icon [shape] - (let [{:keys [x y]} (gpt/subtract @wb/mouse-position @wb/scroll) + (let [{:keys [x y]} (gpt/subtract @wb/mouse-position @wb/scroll-a) props {:x1 x :y1 y :x2 (+ x 100) :y2 (+ y 100)} shape (sh/-initialize shape props)] (rs/emit! (dw/add-shape shape) diff --git a/src/uxbox/ui/workspace/canvas/selrect.cljs b/src/uxbox/ui/workspace/canvas/selrect.cljs index a827b00c2..e9f1decf1 100644 --- a/src/uxbox/ui/workspace/canvas/selrect.cljs +++ b/src/uxbox/ui/workspace/canvas/selrect.cljs @@ -60,10 +60,8 @@ (define-once :selrect-subscriptions (letfn [(on-value [pos] - (let [pos (gpt/subtract pos @wb/scroll)] - (if (nil? @selrect-pos) - (reset! selrect-pos {:start pos :current pos}) - (swap! selrect-pos assoc :current pos)))) + (let [pos (gpt/add pos @wb/scroll-a)] + (swap! selrect-pos assoc :current pos))) (on-complete [] (let [selrect (selrect->rect @selrect-pos)] diff --git a/src/uxbox/ui/workspace/options.cljs b/src/uxbox/ui/workspace/options.cljs index d81881363..7f130f527 100644 --- a/src/uxbox/ui/workspace/options.cljs +++ b/src/uxbox/ui/workspace/options.cljs @@ -494,7 +494,7 @@ (let [local (:rum/local own) zoom 1 shape (rum/react shape) - scroll (rum/react wb/scroll) + scroll (rum/react wb/scroll-a) pos (-> (get-position shape) (gpt/subtract scroll)) ;; and multiply by zoom in future menus (get +menus-map+ (:type shape))