diff --git a/CHANGES.md b/CHANGES.md index 0be459122..3e45b7245 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -19,6 +19,7 @@ - Fix problem with alt key measures being stuck [Taiga #9348](https://tree.taiga.io/project/penpot/issue/9348) - Fix error when reseting stroke cap +- Fix problem with strokes not refreshing in Safari [Taiga #9040](https://tree.taiga.io/project/penpot/issue/9040) ## 2.4.2 diff --git a/frontend/src/app/main/ui/shapes/custom_stroke.cljs b/frontend/src/app/main/ui/shapes/custom_stroke.cljs index 3e664412f..7168975b8 100644 --- a/frontend/src/app/main/ui/shapes/custom_stroke.cljs +++ b/frontend/src/app/main/ui/shapes/custom_stroke.cljs @@ -13,6 +13,7 @@ [app.common.geom.shapes :as gsh] [app.common.geom.shapes.bounds :as gsb] [app.common.geom.shapes.text :as gst] + [app.common.uuid :as uuid] [app.config :as cf] [app.main.ui.context :as muc] [app.main.ui.shapes.attrs :as attrs] @@ -470,12 +471,18 @@ render-id (mf/use-ctx muc/render-id) render-id (d/nilv (unchecked-get props "render-id") render-id) - stroke-id (dm/fmt "strokes-%" shape-id) + strokes (get shape :strokes) + + ;; Generate a unique id when the strokes change. This way we can solve some + ;; render issues in Safari https://tree.taiga.io/project/penpot/issue/9040 + prefix (mf/use-memo (mf/deps strokes) #(dm/str (uuid/next))) + + stroke-id (dm/str (dm/fmt "strokes-%-%" prefix shape-id)) shape-blur (get shape :blur) shape-fills (get shape :fills) shape-shadow (get shape :shadow) - shape-strokes (not-empty (get shape :strokes)) + shape-strokes (not-empty strokes) svg-attrs (attrs/get-svg-props shape render-id)