mirror of
https://github.com/penpot/penpot.git
synced 2025-05-30 07:16:10 +02:00
🐛 Fix problem rendering some SVG filters
This commit is contained in:
parent
34fd9d0d88
commit
785ae01a51
3 changed files with 22 additions and 22 deletions
|
@ -175,12 +175,12 @@
|
|||
(obj/set! styles "fill" (str "url(#fill-0-" render-id ")"))
|
||||
|
||||
;; imported svgs can have fill and fill-opacity attributes
|
||||
(obj/contains? svg-styles "fill")
|
||||
(and (some? svg-styles) (obj/contains? svg-styles "fill"))
|
||||
(-> styles
|
||||
(obj/set! "fill" (obj/get svg-styles "fill"))
|
||||
(obj/set! "fillOpacity" (obj/get svg-styles "fillOpacity")))
|
||||
|
||||
(obj/contains? svg-attrs "fill")
|
||||
(and (some? svg-attrs) (obj/contains? svg-attrs "fill"))
|
||||
(-> styles
|
||||
(obj/set! "fill" (obj/get svg-attrs "fill"))
|
||||
(obj/set! "fillOpacity" (obj/get svg-attrs "fillOpacity")))
|
||||
|
|
|
@ -350,7 +350,7 @@
|
|||
(obj/without ["fill" "fillOpacity"])))]
|
||||
(obj/set! props "fill" (dm/fmt "url(#fill-0-%)" render-id)))
|
||||
|
||||
(obj/contains? svg-styles "fill")
|
||||
(and (some? svg-styles) (obj/contains? svg-styles "fill"))
|
||||
(let [style
|
||||
(-> (obj/get props "style")
|
||||
(obj/clone)
|
||||
|
@ -359,7 +359,7 @@
|
|||
(-> props
|
||||
(obj/set! "style" style)))
|
||||
|
||||
(obj/contains? svg-attrs "fill")
|
||||
(and (some? svg-attrs) (obj/contains? svg-attrs "fill"))
|
||||
(let [style
|
||||
(-> (obj/get props "style")
|
||||
(obj/clone)
|
||||
|
|
|
@ -43,24 +43,24 @@
|
|||
transform-mask? (and (= :mask tag)
|
||||
(= "userSpaceOnUse" (get attrs :maskUnits "objectBoundingBox")))
|
||||
|
||||
attrs (-> attrs
|
||||
(usvg/update-attr-ids prefix-id)
|
||||
(usvg/clean-attrs)
|
||||
;; This clasname will be used to change the transform on the viewport
|
||||
;; only necessary for groups because shapes have their own transform
|
||||
(cond-> (and (or transform-gradient?
|
||||
transform-pattern?
|
||||
transform-clippath?
|
||||
transform-filter?
|
||||
transform-mask?)
|
||||
(= :group type))
|
||||
(update :className #(if % (dm/str % " svg-def") "svg-def")))
|
||||
(cond->
|
||||
transform-gradient? (add-matrix :gradientTransform transform)
|
||||
transform-pattern? (add-matrix :patternTransform transform)
|
||||
transform-clippath? (add-matrix :transform transform)
|
||||
(or transform-filter?
|
||||
transform-mask?) (merge attrs bounds)))
|
||||
attrs
|
||||
(-> attrs
|
||||
(usvg/update-attr-ids prefix-id)
|
||||
(usvg/clean-attrs)
|
||||
;; This clasname will be used to change the transform on the viewport
|
||||
;; only necessary for groups because shapes have their own transform
|
||||
(cond-> (and (or transform-gradient?
|
||||
transform-pattern?
|
||||
transform-clippath?
|
||||
transform-filter?
|
||||
transform-mask?)
|
||||
(= :group type))
|
||||
(update :className #(if % (dm/str % " svg-def") "svg-def")))
|
||||
(cond->
|
||||
transform-gradient? (add-matrix :gradientTransform transform)
|
||||
transform-pattern? (add-matrix :patternTransform transform)
|
||||
transform-clippath? (add-matrix :transform transform)
|
||||
(or transform-filter? transform-mask?) (merge bounds)))
|
||||
|
||||
[wrapper wrapper-props] (if (= tag :mask)
|
||||
["g" #js {:className "svg-mask-wrapper"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue