From 8c51048f7615f7a6c36cf048310e4220fb09e92f Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 4 Apr 2016 20:12:33 +0300 Subject: [PATCH] Do not select shape when drawing. --- src/uxbox/ui/shapes/circle.cljs | 3 ++- src/uxbox/ui/shapes/core.cljs | 8 ++++++-- src/uxbox/ui/shapes/icon.cljs | 20 +++++++++----------- src/uxbox/ui/shapes/text.cljs | 8 ++++++-- 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/uxbox/ui/shapes/circle.cljs b/src/uxbox/ui/shapes/circle.cljs index ba34d7e1d..772e270e7 100644 --- a/src/uxbox/ui/shapes/circle.cljs +++ b/src/uxbox/ui/shapes/circle.cljs @@ -25,7 +25,8 @@ (let [{:keys [id x y width height group]} shape selected (rum/react uusc/selected-shapes-l) selected? (contains? selected id) - on-mouse-down #(uusi/on-mouse-down % shape selected) + drawing? (rum/react uusc/drawing-state-l) + on-mouse-down #(uusi/on-mouse-down % shape selected drawing?) on-mouse-up #(uusi/on-mouse-up % shape)] (html [:g.shape {:class (when selected? "selected") diff --git a/src/uxbox/ui/shapes/core.cljs b/src/uxbox/ui/shapes/core.cljs index e84b2c8d7..7de621267 100644 --- a/src/uxbox/ui/shapes/core.cljs +++ b/src/uxbox/ui/shapes/core.cljs @@ -40,8 +40,12 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (def ^:const selected-shapes-l - (as-> (l/in [:workspace :selected]) $ - (l/focus-atom $ st/state))) + (-> (l/in [:workspace :selected]) + (l/focus-atom st/state))) + +(def ^:const drawing-state-l + (-> (l/in [:workspace :drawing]) + (l/focus-atom st/state))) (defn- focus-shape [id] diff --git a/src/uxbox/ui/shapes/icon.cljs b/src/uxbox/ui/shapes/icon.cljs index 1b44bb4de..f419edb92 100644 --- a/src/uxbox/ui/shapes/icon.cljs +++ b/src/uxbox/ui/shapes/icon.cljs @@ -13,15 +13,16 @@ [uxbox.ui.shapes.core :as uusc] [uxbox.util.dom :as dom])) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Icon Component -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; --- Icon Component (defn on-mouse-down - [event {:keys [id group] :as shape} selected] + [event {:keys [id group] :as shape} selected drawing?] (let [selected? (contains? selected id)] (when-not (:blocked shape) (cond + drawing? + nil + (and group (:locked (ush/resolve-parent shape))) nil @@ -61,8 +62,9 @@ [own shape] (let [{:keys [id x y width height group]} shape selected (rum/react uusc/selected-shapes-l) + drawing? (rum/react uusc/drawing-state-l) selected? (contains? selected id) - on-mouse-down #(on-mouse-down % shape selected) + on-mouse-down #(on-mouse-down % shape selected drawing?) on-mouse-up #(on-mouse-up % shape)] (html [:g.shape {:class (when selected? "selected") @@ -72,9 +74,7 @@ (when (and selected? (= (count selected) 1)) (handlers shape))]))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Icon Handlers -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; --- Icon Handlers (defn- handlers-render [own shape] @@ -123,9 +123,7 @@ :name "handlers" :mixins [mx/static]})) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Shape & Shape Svg -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; --- Shape & Shape Svg (defmethod uusc/render-shape :builtin/icon [{:keys [data id] :as shape} _] diff --git a/src/uxbox/ui/shapes/text.cljs b/src/uxbox/ui/shapes/text.cljs index d218e52cb..ecc0b8b57 100644 --- a/src/uxbox/ui/shapes/text.cljs +++ b/src/uxbox/ui/shapes/text.cljs @@ -19,11 +19,14 @@ (:import goog.events.EventType)) (defn on-mouse-down - [event own {:keys [id group] :as shape} selected] + [event own {:keys [id group] :as shape} selected drawing?] (let [selected? (contains? selected id) local (:rum/local own)] (when-not (:blocked shape) (cond + drawing? + nil + (:edition @local) nil @@ -108,7 +111,8 @@ (let [{:keys [id x1 y1 content group]} shape selected (rum/react uusc/selected-shapes-l) selected? (and (contains? selected id) (= (count selected) 1)) - on-mouse-down #(on-mouse-down % own shape selected) + drawing? (rum/react uusc/drawing-state-l) + on-mouse-down #(on-mouse-down % own shape selected drawing?) on-mouse-up #(on-mouse-up % shape) local (:rum/local own)] (html