🐛 Remove the swap slot on some operations with copies

This commit is contained in:
Pablo Alba 2024-03-21 17:36:43 +01:00 committed by Andrés Moya
parent ad3e44258a
commit 065d481cb5
6 changed files with 82 additions and 28 deletions

View file

@ -460,9 +460,9 @@
;; TODO: move to common.files.shape-helpers
(defn- prepare-duplicate-shape-change
([changes objects page unames update-unames! ids-map obj delta level-delta libraries library-data it file-id]
(prepare-duplicate-shape-change changes objects page unames update-unames! ids-map obj delta level-delta libraries library-data it file-id (:frame-id obj) (:parent-id obj) false false))
(prepare-duplicate-shape-change changes objects page unames update-unames! ids-map obj delta level-delta libraries library-data it file-id (:frame-id obj) (:parent-id obj) false false true))
([changes objects page unames update-unames! ids-map obj delta level-delta libraries library-data it file-id frame-id parent-id duplicating-component? child?]
([changes objects page unames update-unames! ids-map obj delta level-delta libraries library-data it file-id frame-id parent-id duplicating-component? child? remove-swap-slot?]
(cond
(nil? obj)
changes
@ -485,6 +485,7 @@
(ctk/instance-root? obj))
duplicating-component? (or duplicating-component? (ctk/instance-head? obj))
is-component-main? (ctk/main-instance? obj)
subinstance-head? (ctk/subinstance-head? obj)
into-component? (and duplicating-component?
(ctn/in-any-component? objects parent))
@ -507,6 +508,9 @@
:parent-id parent-id
:frame-id frame-id)
(cond-> (and subinstance-head? remove-swap-slot?)
(ctk/remove-swap-slot))
(dissoc :shapes
:main-instance
:use-for-thumbnail)
@ -572,7 +576,11 @@
(if frame? new-id frame-id)
new-id
duplicating-component?
true))
true
(and remove-swap-slot?
;; only remove swap slot of children when the current shape
;; is not a subinstance head
(not subinstance-head?))))
changes
(map (d/getf objects) (:shapes obj)))))))