0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-03-27 23:21:47 -05:00

🐛 Fix problem with alt-duplicate on root frames

This commit is contained in:
alonso.torres 2024-01-08 15:06:04 +01:00 committed by Andrey Antukh
parent c43458af1d
commit 5ea414aed6
2 changed files with 18 additions and 8 deletions

View file

@ -122,6 +122,7 @@
cursor (mf/use-state (utils/get-cursor :pointer-inner))
hover-ids (mf/use-state nil)
hover (mf/use-state nil)
measure-hover (mf/use-state nil)
hover-disabled? (mf/use-state false)
hover-top-frame-id (mf/use-state nil)
frame-hover (mf/use-state nil)
@ -264,7 +265,8 @@
(hooks/setup-viewport-size vport viewport-ref)
(hooks/setup-cursor cursor alt? mod? space? panning drawing-tool drawing-path? node-editing? z? workspace-read-only?)
(hooks/setup-keyboard alt? mod? space? z? shift?)
(hooks/setup-hover-shapes page-id move-stream base-objects transform selected mod? hover hover-ids hover-top-frame-id @hover-disabled? focus zoom show-measures?)
(hooks/setup-hover-shapes page-id move-stream base-objects transform selected mod? hover measure-hover
hover-ids hover-top-frame-id @hover-disabled? focus zoom show-measures?)
(hooks/setup-viewport-modifiers modifiers base-objects)
(hooks/setup-shortcuts node-editing? drawing-path? text-editing? grid-editing?)
(hooks/setup-active-frames base-objects hover-ids selected active-frames zoom transform vbox)
@ -433,7 +435,7 @@
{:bounds vbox
:selected-shapes selected-shapes
:frame selected-frame
:hover-shape @hover
:hover-shape @measure-hover
:zoom zoom}])
(when show-padding?

View file

@ -167,7 +167,7 @@
(not))))
(defn setup-hover-shapes
[page-id move-stream objects transform selected mod? hover hover-ids hover-top-frame-id hover-disabled? focus zoom show-measures?]
[page-id move-stream objects transform selected mod? hover measure-hover hover-ids hover-top-frame-id hover-disabled? focus zoom show-measures?]
(let [;; We use ref so we don't recreate the stream on a change
zoom-ref (mf/use-ref zoom)
mod-ref (mf/use-ref @mod?)
@ -285,9 +285,6 @@
mod?
(filter grouped?)
show-measures?
(filter #(group-empty-space? % objects ids))
(not mod?)
(filter #(or (root-frame-with-data? %)
(group-empty-space? % objects ids))))
@ -309,9 +306,21 @@
(remove #(and mod? (no-fill-nested-frames? %)))
(filter #(or (empty? focus) (cpf/is-in-focus? objects focus %)))
(first)
(get objects))]
(get objects))
;; We keep track of a diferent shape for measures
measure-hover-shape
(when show-measures?
(->> ids
(remove #(group-empty-space? % objects ids))
(remove (partial cfh/hidden-parent? objects))
(remove #(and mod? (no-fill-nested-frames? %)))
(filter #(or (empty? focus) (cpf/is-in-focus? objects focus %)))
(first)
(get objects)))]
(reset! hover hover-shape)
(reset! measure-hover measure-hover-shape)
(reset! hover-ids ids))))))
(defn setup-viewport-modifiers
@ -420,4 +429,3 @@
text-editing?
(do (st/emit! (dsc/push-shortcuts ::text tsc/shortcuts))
#(st/emit! (dsc/pop-shortcuts ::text)))))))