0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-02-03 21:09:00 -05:00

Fix canvas selrect selection.

This commit is contained in:
Andrey Antukh 2016-02-16 20:04:42 +02:00
parent a55d3655cf
commit 674136bcab
6 changed files with 23 additions and 17 deletions

View file

@ -120,8 +120,8 @@
;; that horrible hack. ;; that horrible hack.
(let [el1 (mx/get-ref-dom own "viewport-container") (let [el1 (mx/get-ref-dom own "viewport-container")
el2 (mx/get-ref-dom own "workspace-canvas")] el2 (mx/get-ref-dom own "workspace-canvas")]
(set! (.-scrollLeft el1) wb/document-start-scroll-x) (set! (.-scrollLeft el1) wb/canvas-start-scroll-x)
(set! (.-scrollLeft el2) wb/document-start-scroll-x) (set! (.-scrollLeft el2) wb/canvas-start-scroll-x)
own)) own))
(defn- workspace-transfer-state (defn- workspace-transfer-state

View file

@ -125,7 +125,7 @@
(def ^:const viewport-width 4069) (def ^:const viewport-width 4069)
(def ^:const viewport-height 2048) (def ^:const viewport-height 2048)
(def ^:const document-start-x 600) (def ^:const canvas-start-x 600)
(def ^:const document-start-y 30) (def ^:const canvas-start-y 30)
(def ^:const document-start-scroll-x 550) (def ^:const canvas-start-scroll-x 550)

View file

@ -157,8 +157,8 @@
shapes-selected (filter (comp workspace-selected :id) shapes) shapes-selected (filter (comp workspace-selected :id) shapes)
shapes-notselected (filter (comp not workspace-selected :id) shapes)] shapes-notselected (filter (comp not workspace-selected :id) shapes)]
(html (html
[:svg.page-canvas {:x wb/document-start-x [:svg.page-canvas {:x wb/canvas-start-x
:y wb/document-start-y :y wb/canvas-start-y
:ref (str "canvas" id) :ref (str "canvas" id)
:width width :width width
:height height} :height height}

View file

@ -62,9 +62,15 @@
(letfn [(on-value [pos] (letfn [(on-value [pos]
(swap! selrect-pos assoc :current pos)) (swap! selrect-pos assoc :current pos))
(translate-selrect [selrect]
(assoc selrect
:x (- (:x selrect) wb/canvas-start-x)
:y (- (:y selrect) wb/canvas-start-y)))
(on-complete [] (on-complete []
(let [selrect (selrect->rect @selrect-pos)] (let [selrect (selrect->rect @selrect-pos)
(rs/emit! (dw/select-shapes selrect)) selrect' (translate-selrect selrect)]
(rs/emit! (dw/select-shapes selrect'))
(reset! selrect-pos nil))) (reset! selrect-pos nil)))
(init [] (init []

View file

@ -58,21 +58,21 @@
flags (rum/react wb/flags-l) flags (rum/react wb/flags-l)
page (rum/react wb/page-l) page (rum/react wb/page-l)
enabled? (contains? flags :grid) enabled? (contains? flags :grid)
vertical-ticks (range (- 0 wb/document-start-y) vertical-ticks (range (- 0 wb/canvas-start-y)
(- (:width page) wb/document-start-y) (- (:width page) wb/canvas-start-y)
step-size) step-size)
horizontal-ticks (range (- 0 wb/document-start-x) horizontal-ticks (range (- 0 wb/canvas-start-x)
(- (:height page) wb/document-start-x) (- (:height page) wb/canvas-start-x)
step-size)] step-size)]
(html (html
[:g.grid [:g.grid
{:style {:display (if enabled? "block" "none")}} {:style {:display (if enabled? "block" "none")}}
(for [tick vertical-ticks] (for [tick vertical-ticks]
(let [position (+ tick wb/document-start-x) (let [position (+ tick wb/canvas-start-x)
line (vertical-line page position tick)] line (vertical-line page position tick)]
(rum/with-key line (str "tick-" tick)))) (rum/with-key line (str "tick-" tick))))
(for [tick horizontal-ticks] (for [tick horizontal-ticks]
(let [position (+ tick wb/document-start-y) (let [position (+ tick wb/canvas-start-y)
line (horizontal-line page position tick)] line (horizontal-line page position tick)]
(rum/with-key line (str "tick-" tick))))])))) (rum/with-key line (str "tick-" tick))))]))))

View file

@ -11,8 +11,8 @@
(def ^:static zoom 1) (def ^:static zoom 1)
(def ^:static step-padding 20) (def ^:static step-padding 20)
(def ^:static step-size 10) (def ^:static step-size 10)
(def ^:static start-width wb/document-start-x) (def ^:static start-width wb/canvas-start-x)
(def ^:static start-height wb/document-start-y) (def ^:static start-height wb/canvas-start-y)
(def ^:static big-ticks-mod (/ 100 zoom)) (def ^:static big-ticks-mod (/ 100 zoom))
(def ^:static mid-ticks-mod (/ 50 zoom)) (def ^:static mid-ticks-mod (/ 50 zoom))
(def ^:static scroll-left 0) (def ^:static scroll-left 0)