0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-02-11 01:28:30 -05:00

🐛 Fix problem with nested constraints and text

This commit is contained in:
alonso.torres 2022-05-20 09:22:41 +02:00 committed by Andrés Moya
parent d8a7402046
commit 542fb9c754
2 changed files with 9 additions and 20 deletions

View file

@ -81,7 +81,6 @@
(let [shape-node (dom/query base-node (str "#shape-" id))
frame? (= :frame type)
text? (= :text type)
group? (= :group type)
mask? (and group? masked-group?)]
@ -104,10 +103,6 @@
(dom/query-all shape-defs ".svg-def")
(dom/query-all shape-defs ".svg-mask-wrapper")))
text?
[shape-node
(dom/query shape-node ".text-container")]
:else
[shape-node])))
@ -172,10 +167,12 @@
(defn update-transform!
[base-node shapes transforms modifiers]
(doseq [{:keys [id] :as shape} shapes]
(doseq [{:keys [id type] :as shape} shapes]
(when-let [nodes (get-nodes base-node shape)]
(let [transform (get transforms id)
modifiers (get-in modifiers [id :modifiers])]
modifiers (get-in modifiers [id :modifiers])
text? (= type :text)
transform-text? (and text? (and (nil? (:resize-vector modifiers)) (nil? (:resize-vector-2 modifiers))))]
(doseq [node nodes]
(cond
@ -188,17 +185,6 @@
(dom/class? node "frame-children")
(set-transform-att! node "transform" (gmt/inverse transform))
;; We need to update the shape transform matrix when there is a resize
;; we do it dinamicaly here
(dom/class? node "text-container")
(let [modifiers (dissoc modifiers :displacement :rotation)]
(when (not (gsh/empty-modifiers? modifiers))
(let [mtx (-> shape
(assoc :modifiers modifiers)
(gsh/transform-shape)
(gsh/transform-matrix {:no-flip true}))]
(override-transform-att! node "transform" mtx))))
(or (= (dom/get-tag-name node) "mask")
(= (dom/get-tag-name node) "filter"))
(transform-region! node modifiers)
@ -210,7 +196,7 @@
(= (dom/get-tag-name node) "pattern")
(set-transform-att! node "patternTransform" transform)
(and (some? transform) (some? node))
(and (some? transform) (some? node) (or (not text?) transform-text?))
(set-transform-att! node "transform" transform)))))))
(defn remove-transform!

View file

@ -30,7 +30,10 @@
(defn strip-modifier
[modifier]
(d/update-when modifier :modifiers dissoc :displacement :rotation))
(if (or (some? (get-in modifier [:modifiers :resize-vector]))
(some? (get-in modifier [:modifiers :resize-vector-2])))
modifier
(d/update-when modifier :modifiers dissoc :displacement :rotation)))
(defn process-shape [modifiers {:keys [id] :as shape}]
(let [modifier (-> (get modifiers id) strip-modifier)