mirror of
https://github.com/penpot/penpot.git
synced 2025-02-18 21:06:11 -05:00
🐛 Fix problem with nested constraints and text
This commit is contained in:
parent
d8a7402046
commit
542fb9c754
2 changed files with 9 additions and 20 deletions
|
@ -81,7 +81,6 @@
|
||||||
(let [shape-node (dom/query base-node (str "#shape-" id))
|
(let [shape-node (dom/query base-node (str "#shape-" id))
|
||||||
|
|
||||||
frame? (= :frame type)
|
frame? (= :frame type)
|
||||||
text? (= :text type)
|
|
||||||
group? (= :group type)
|
group? (= :group type)
|
||||||
mask? (and group? masked-group?)]
|
mask? (and group? masked-group?)]
|
||||||
|
|
||||||
|
@ -104,10 +103,6 @@
|
||||||
(dom/query-all shape-defs ".svg-def")
|
(dom/query-all shape-defs ".svg-def")
|
||||||
(dom/query-all shape-defs ".svg-mask-wrapper")))
|
(dom/query-all shape-defs ".svg-mask-wrapper")))
|
||||||
|
|
||||||
text?
|
|
||||||
[shape-node
|
|
||||||
(dom/query shape-node ".text-container")]
|
|
||||||
|
|
||||||
:else
|
:else
|
||||||
[shape-node])))
|
[shape-node])))
|
||||||
|
|
||||||
|
@ -172,10 +167,12 @@
|
||||||
|
|
||||||
(defn update-transform!
|
(defn update-transform!
|
||||||
[base-node shapes transforms modifiers]
|
[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)]
|
(when-let [nodes (get-nodes base-node shape)]
|
||||||
(let [transform (get transforms id)
|
(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]
|
(doseq [node nodes]
|
||||||
(cond
|
(cond
|
||||||
|
@ -188,17 +185,6 @@
|
||||||
(dom/class? node "frame-children")
|
(dom/class? node "frame-children")
|
||||||
(set-transform-att! node "transform" (gmt/inverse transform))
|
(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")
|
(or (= (dom/get-tag-name node) "mask")
|
||||||
(= (dom/get-tag-name node) "filter"))
|
(= (dom/get-tag-name node) "filter"))
|
||||||
(transform-region! node modifiers)
|
(transform-region! node modifiers)
|
||||||
|
@ -210,7 +196,7 @@
|
||||||
(= (dom/get-tag-name node) "pattern")
|
(= (dom/get-tag-name node) "pattern")
|
||||||
(set-transform-att! node "patternTransform" transform)
|
(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)))))))
|
(set-transform-att! node "transform" transform)))))))
|
||||||
|
|
||||||
(defn remove-transform!
|
(defn remove-transform!
|
||||||
|
|
|
@ -30,7 +30,10 @@
|
||||||
|
|
||||||
(defn strip-modifier
|
(defn strip-modifier
|
||||||
[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}]
|
(defn process-shape [modifiers {:keys [id] :as shape}]
|
||||||
(let [modifier (-> (get modifiers id) strip-modifier)
|
(let [modifier (-> (get modifiers id) strip-modifier)
|
||||||
|
|
Loading…
Add table
Reference in a new issue