0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-24 23:49:45 -05:00

🐛 Fix problem with line caps

This commit is contained in:
alonso.torres 2024-02-07 11:09:54 +01:00
parent 8032a22f14
commit 3d66ae21de
2 changed files with 13 additions and 10 deletions

View file

@ -90,7 +90,7 @@
attrs))
(defn add-stroke!
[attrs data render-id index]
[attrs data render-id index open-path?]
(let [style (:stroke-style data :solid)]
(when-not (= style :none)
(let [width (:stroke-width data 1)
@ -122,16 +122,18 @@
(cond
(and (contains? stroke-caps-line caps-start)
(= caps-start caps-end)
(not= :inner alignment)
(not= :outer alignment)
(or open-path?
(and (not= :inner alignment)
(not= :outer alignment)))
(not= :dotted style))
(obj/set! attrs "strokeLinecap" (name caps-start))
(= :dotted style)
(obj/set! attrs "strokeLinecap" "round"))
(when (and (not= :inner alignment)
(not= :outer alignment))
(when (or open-path?
(and (not= :inner alignment)
(not= :outer alignment)))
;; For other cap types we use markers.
(when (or (contains? stroke-caps-marker caps-start)

View file

@ -420,7 +420,7 @@
(mf/html [:> type props])))
(defn- build-stroke-element
[child value position render-id]
[child value position render-id open-path?]
(let [props (obj/get child "props")
type (obj/get child "type")
@ -428,7 +428,7 @@
(obj/clone)
(obj/set! "fill" "none")
(obj/set! "fillOpacity" "none")
(attrs/add-stroke! value render-id position))
(attrs/add-stroke! value render-id position open-path?))
style (if (:stroke-image value)
(obj/set! style "stroke" (dm/fmt "url(#stroke-fill-%-%)" render-id position))
@ -484,9 +484,10 @@
props (mf/spread-props svg-attrs
{:id stroke-id
:className "strokes"
:style style})]
:style style})
open-path? (and ^boolean (cfh/path-shape? shape)
^boolean (gsh/open-path? shape))]
(when-not ^boolean (cfh/frame-shape? shape)
(when (and (some? shape-blur)
(not ^boolean (:hidden shape-blur)))
@ -503,7 +504,7 @@
:stroke value
:index index
:key (dm/str index "-" stroke-id)}
(build-stroke-element child value index render-id)])])))
(build-stroke-element child value index render-id open-path?)])])))
(mf/defc shape-custom-strokes
{::mf/wrap-props false}