mirror of
https://github.com/penpot/penpot.git
synced 2025-05-19 11:06:13 +02:00
🐛 Fix ordering of copy+pasted shapes after rect select
This commit is contained in:
parent
2974fb0f4e
commit
c62905b9a8
3 changed files with 9 additions and 5 deletions
|
@ -100,7 +100,8 @@
|
|||
{:cmd :selection/query
|
||||
:page-id page-id
|
||||
:rect rect
|
||||
:include-frames? true}))))
|
||||
:include-frames? true
|
||||
:reverse? true})))) ;; we want the topmost shape to be selected first
|
||||
|
||||
;; We use ref so we don't recreate the stream on a change
|
||||
transform-ref (mf/use-ref nil)
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
nil))
|
||||
|
||||
(defmethod impl/handler :selection/query
|
||||
[{:keys [page-id rect frame-id include-frames? include-groups? disabled-masks] :or {include-groups? true
|
||||
disabled-masks #{}} :as message}]
|
||||
[{:keys [page-id rect frame-id include-frames? include-groups? disabled-masks reverse?]
|
||||
:or {include-groups? true disabled-masks #{} reverse? false} :as message}]
|
||||
(when-let [index (get @state page-id)]
|
||||
(let [result (-> (qdt/search index (clj->js rect))
|
||||
(es6-iterator-seq))
|
||||
|
@ -76,11 +76,13 @@
|
|||
(filter (comp overlaps? :frame))
|
||||
(filter (comp overlaps-masks? :masks))
|
||||
(filter overlaps?))
|
||||
result)]
|
||||
result)
|
||||
|
||||
keyfn (if reverse? (comp - :z) :z)]
|
||||
|
||||
(into (d/ordered-set)
|
||||
(->> matching-shapes
|
||||
(sort-by (comp - :z))
|
||||
(sort-by keyfn)
|
||||
(map :id))))))
|
||||
|
||||
(defn create-mask-index
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue