mirror of
https://github.com/penpot/penpot.git
synced 2026-03-13 13:57:21 +00:00
Merge remote-tracking branch 'origin/staging' into develop
This commit is contained in:
@@ -79,11 +79,13 @@
|
||||
:else zero)))
|
||||
|
||||
(defn get-snap-points [page-id frame-id remove-snap? zoom point coord]
|
||||
(let [value (get point coord)]
|
||||
(let [value (get point coord)
|
||||
vbox @refs/vbox]
|
||||
(->> (uw/ask! {:cmd :snaps/range-query
|
||||
:page-id page-id
|
||||
:frame-id frame-id
|
||||
:axis coord
|
||||
:bounds vbox
|
||||
:ranges [[(- value (/ 0.5 zoom)) (+ value (/ 0.5 zoom))]]})
|
||||
(rx/take 1)
|
||||
(rx/map (remove-from-snap-points remove-snap?)))))
|
||||
@@ -94,11 +96,13 @@
|
||||
ranges (->> points
|
||||
(map coord)
|
||||
(mapv #(vector (- % snap-accuracy)
|
||||
(+ % snap-accuracy))))]
|
||||
(+ % snap-accuracy))))
|
||||
vbox @refs/vbox]
|
||||
(->> (uw/ask! {:cmd :snaps/range-query
|
||||
:page-id page-id
|
||||
:frame-id frame-id
|
||||
:axis coord
|
||||
:bounds vbox
|
||||
:ranges ranges})
|
||||
(rx/take 1)
|
||||
(rx/map (remove-from-snap-points remove-snap?))
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
(ns app.worker.snaps
|
||||
(:require
|
||||
[app.common.geom.shapes.rect :as gpr]
|
||||
[app.util.snap-data :as sd]
|
||||
[app.worker.impl :as impl]
|
||||
[okulary.core :as l]))
|
||||
@@ -24,11 +25,14 @@
|
||||
nil)
|
||||
|
||||
(defmethod impl/handler :snaps/range-query
|
||||
[{:keys [page-id frame-id axis ranges] :as message}]
|
||||
|
||||
(into []
|
||||
(comp (mapcat #(sd/query @state page-id frame-id axis %))
|
||||
(distinct))
|
||||
ranges))
|
||||
[{:keys [page-id frame-id axis ranges bounds] :as message}]
|
||||
(let [match-bounds?
|
||||
(fn [[_ data]]
|
||||
(some #(gpr/contains-point? bounds %) (map :pt data)))]
|
||||
(->> (into []
|
||||
(comp (mapcat #(sd/query @state page-id frame-id axis %))
|
||||
(distinct))
|
||||
ranges)
|
||||
(filter match-bounds?))))
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user