mirror of
https://github.com/penpot/penpot.git
synced 2025-01-09 00:10:11 -05:00
Merge pull request #176 from uxbox/239/select-with-zoom
🐛 Take into account zoom when selecting objects with rect
This commit is contained in:
commit
b24307cf35
2 changed files with 13 additions and 3 deletions
|
@ -1169,17 +1169,19 @@
|
|||
|
||||
(defn impl-match-by-selrect
|
||||
[state selrect]
|
||||
(let [page-id (::page-id state)
|
||||
(let [zoom (gpt/point (get-in state [:workspace-local :zoom]))
|
||||
selrect' (geom/apply-zoom selrect zoom)
|
||||
page-id (::page-id state)
|
||||
data (get-in state [:workspace-data page-id])
|
||||
match (fn [acc {:keys [type id] :as shape}]
|
||||
(cond
|
||||
(helpers/is-shape-grouped (:id shape) (:objects data))
|
||||
acc
|
||||
|
||||
(geom/contained-in? shape selrect)
|
||||
(geom/contained-in? shape selrect')
|
||||
(conj acc id)
|
||||
|
||||
(geom/overlaps? shape selrect)
|
||||
(geom/overlaps? shape selrect')
|
||||
(conj acc id)
|
||||
|
||||
:else
|
||||
|
|
|
@ -701,6 +701,14 @@
|
|||
|
||||
;; --- Helpers
|
||||
|
||||
(defn apply-zoom
|
||||
[selrect zoom]
|
||||
(assoc selrect
|
||||
:x (/ (:x selrect) (:x zoom))
|
||||
:y (/ (:y selrect) (:y zoom))
|
||||
:width (/ (:width selrect) (:x zoom))
|
||||
:height (/ (:height selrect) (:y zoom))))
|
||||
|
||||
(defn contained-in?
|
||||
"Check if a shape is contained in the
|
||||
provided selection rect."
|
||||
|
|
Loading…
Reference in a new issue