Performane improvements over previous commit.

This commit is contained in:
Andrey Antukh 2016-04-04 20:34:09 +03:00
parent 8c51048f76
commit b5ba75097f
3 changed files with 14 additions and 21 deletions

View file

@ -25,8 +25,7 @@
(let [{:keys [id x y width height group]} shape (let [{:keys [id x y width height group]} shape
selected (rum/react uusc/selected-shapes-l) selected (rum/react uusc/selected-shapes-l)
selected? (contains? selected id) selected? (contains? selected id)
drawing? (rum/react uusc/drawing-state-l) on-mouse-down #(uusi/on-mouse-down % shape selected)
on-mouse-down #(uusi/on-mouse-down % shape selected drawing?)
on-mouse-up #(uusi/on-mouse-up % shape)] on-mouse-up #(uusi/on-mouse-up % shape)]
(html (html
[:g.shape {:class (when selected? "selected") [:g.shape {:class (when selected? "selected")

View file

@ -16,14 +16,13 @@
;; --- Icon Component ;; --- Icon Component
(defn on-mouse-down (defn on-mouse-down
[event {:keys [id group] :as shape} selected drawing?] [event {:keys [id group] :as shape} selected]
(let [selected? (contains? selected id)] (let [selected? (contains? selected id)
drawing? @uusc/drawing-state-l]
(when-not (:blocked shape) (when-not (:blocked shape)
(cond (cond
drawing? (or drawing?
nil (and group (:locked (ush/resolve-parent shape))))
(and group (:locked (ush/resolve-parent shape)))
nil nil
(and (not selected?) (empty? selected)) (and (not selected?) (empty? selected))
@ -62,9 +61,8 @@
[own shape] [own shape]
(let [{:keys [id x y width height group]} shape (let [{:keys [id x y width height group]} shape
selected (rum/react uusc/selected-shapes-l) selected (rum/react uusc/selected-shapes-l)
drawing? (rum/react uusc/drawing-state-l)
selected? (contains? selected id) selected? (contains? selected id)
on-mouse-down #(on-mouse-down % shape selected drawing?) on-mouse-down #(on-mouse-down % shape selected)
on-mouse-up #(on-mouse-up % shape)] on-mouse-up #(on-mouse-up % shape)]
(html (html
[:g.shape {:class (when selected? "selected") [:g.shape {:class (when selected? "selected")

View file

@ -19,18 +19,15 @@
(:import goog.events.EventType)) (:import goog.events.EventType))
(defn on-mouse-down (defn on-mouse-down
[event own {:keys [id group] :as shape} selected drawing?] [event own {:keys [id group] :as shape} selected]
(let [selected? (contains? selected id) (let [selected? (contains? selected id)
local (:rum/local own)] local (:rum/local own)
drawing? @uusc/drawing-state-l]
(when-not (:blocked shape) (when-not (:blocked shape)
(cond (cond
drawing? (or drawing?
nil
(:edition @local) (:edition @local)
nil (and group (:locked (ush/resolve-parent shape))))
(and group (:locked (ush/resolve-parent shape)))
nil nil
(and (not selected?) (empty? selected)) (and (not selected?) (empty? selected))
@ -111,8 +108,7 @@
(let [{:keys [id x1 y1 content group]} shape (let [{:keys [id x1 y1 content group]} shape
selected (rum/react uusc/selected-shapes-l) selected (rum/react uusc/selected-shapes-l)
selected? (and (contains? selected id) (= (count selected) 1)) selected? (and (contains? selected id) (= (count selected) 1))
drawing? (rum/react uusc/drawing-state-l) on-mouse-down #(on-mouse-down % own shape selected)
on-mouse-down #(on-mouse-down % own shape selected drawing?)
on-mouse-up #(on-mouse-up % shape) on-mouse-up #(on-mouse-up % shape)
local (:rum/local own)] local (:rum/local own)]
(html (html