From f104dd0d40d491c02f2a5fd6ad00c22df1c49aad Mon Sep 17 00:00:00 2001 From: Elena Torro Date: Tue, 4 Nov 2025 16:00:49 +0100 Subject: [PATCH] :bug: Fix texts with empty fills and strokes --- .../get-file-text-empty-fills.json | 133 ++++++++++++++++++ .../ui/render-wasm-specs/texts.spec.js | 16 +++ ...le-with-empty-text-fills-and-strokes-1.png | Bin 0 -> 79042 bytes render-wasm/src/render/text.rs | 4 +- render-wasm/src/shapes/fills.rs | 8 +- render-wasm/src/shapes/text.rs | 7 +- 6 files changed, 164 insertions(+), 4 deletions(-) create mode 100644 frontend/playwright/data/render-wasm/get-file-text-empty-fills.json create mode 100644 frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Renders-a-file-with-empty-text-fills-and-strokes-1.png diff --git a/frontend/playwright/data/render-wasm/get-file-text-empty-fills.json b/frontend/playwright/data/render-wasm/get-file-text-empty-fills.json new file mode 100644 index 0000000000..f7b19d29f1 --- /dev/null +++ b/frontend/playwright/data/render-wasm/get-file-text-empty-fills.json @@ -0,0 +1,133 @@ +{ + "~:features": { + "~#set": [ + "fdata/path-data", + "plugins/runtime", + "design-tokens/v1", + "variants/v1", + "layout/grid", + "styles/v2", + "fdata/objects-map", + "render-wasm/v1", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:team-id": "~u6bd7c17d-4f59-815e-8006-5c1f6882469a", + "~:permissions": { + "~:type": "~:membership", + "~:is-owner": true, + "~:is-admin": true, + "~:can-edit": true, + "~:can-read": true, + "~:is-logged": true + }, + "~:has-media-trimmed": false, + "~:comment-thread-seqn": 0, + "~:name": "text_without_fills_and_strokes", + "~:revn": 8, + "~:modified-at": "~m1762268037819", + "~:vern": 0, + "~:id": "~u58c5cc60-d124-81bd-8007-0f19b52444eb", + "~:is-shared": false, + "~:migrations": { + "~#ordered-set": [ + "legacy-2", + "legacy-3", + "legacy-5", + "legacy-6", + "legacy-7", + "legacy-8", + "legacy-9", + "legacy-10", + "legacy-11", + "legacy-12", + "legacy-13", + "legacy-14", + "legacy-16", + "legacy-17", + "legacy-18", + "legacy-19", + "legacy-25", + "legacy-26", + "legacy-27", + "legacy-28", + "legacy-29", + "legacy-31", + "legacy-32", + "legacy-33", + "legacy-34", + "legacy-36", + "legacy-37", + "legacy-38", + "legacy-39", + "legacy-40", + "legacy-41", + "legacy-42", + "legacy-43", + "legacy-44", + "legacy-45", + "legacy-46", + "legacy-47", + "legacy-48", + "legacy-49", + "legacy-50", + "legacy-51", + "legacy-52", + "legacy-53", + "legacy-54", + "legacy-55", + "legacy-56", + "legacy-57", + "legacy-59", + "legacy-62", + "legacy-65", + "legacy-66", + "legacy-67", + "0001-remove-tokens-from-groups", + "0002-normalize-bool-content-v2", + "0002-clean-shape-interactions", + "0003-fix-root-shape", + "0003-convert-path-content-v2", + "0004-clean-shadow-color", + "0005-deprecate-image-type", + "0006-fix-old-texts-fills", + "0008-fix-library-colors-v4", + "0009-clean-library-colors", + "0009-add-partial-text-touched-flags", + "0010-fix-swap-slots-pointing-non-existent-shapes", + "0011-fix-invalid-text-touched-flags", + "0012-fix-position-data", + "0013-fix-component-path", + "0013-clear-invalid-strokes-and-fills", + "0014-fix-tokens-lib-duplicate-ids", + "0014-clear-components-nil-objects" + ] + }, + "~:version": 67, + "~:project-id": "~u6bd7c17d-4f59-815e-8006-5c1f68846e43", + "~:created-at": "~m1762267656337", + "~:backend": "legacy-db", + "~:data": { + "~:pages": [ + "~u58c5cc60-d124-81bd-8007-0f19b52444ec" + ], + "~:pages-index": { + "~u58c5cc60-d124-81bd-8007-0f19b52444ec": { + "~:objects": { + "~#penpot/objects-map/v2": { + "~u00000000-0000-0000-0000-000000000000": "[\"~#shape\",[\"^ \",\"~:y\",0,\"~:hide-fill-on-export\",false,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:name\",\"Root Frame\",\"~:width\",0.01,\"~:type\",\"~:frame\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",0.0,\"~:y\",0.0]],[\"^:\",[\"^ \",\"~:x\",0.01,\"~:y\",0.0]],[\"^:\",[\"^ \",\"~:x\",0.01,\"~:y\",0.01]],[\"^:\",[\"^ \",\"~:x\",0.0,\"~:y\",0.01]]],\"~:r2\",0,\"~:proportion-lock\",false,\"~:transform-inverse\",[\"^3\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:r3\",0,\"~:r1\",0,\"~:id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:strokes\",[],\"~:x\",0,\"~:proportion\",1.0,\"~:r4\",0,\"~:selrect\",[\"~#rect\",[\"^ \",\"~:x\",0,\"~:y\",0,\"^6\",0.01,\"~:height\",0.01,\"~:x1\",0,\"~:y1\",0,\"~:x2\",0.01,\"~:y2\",0.01]],\"~:fills\",[[\"^ \",\"~:fill-color\",\"#FFFFFF\",\"~:fill-opacity\",1]],\"~:flip-x\",null,\"^H\",0.01,\"~:flip-y\",null,\"~:shapes\",[\"~u3238c45b-33fb-801d-8007-0f19b62450a7\"]]]", + "~u3238c45b-33fb-801d-8007-0f19b62450a7": "[\"~#shape\",[\"^ \",\"~:y\",381.99999669259154,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:grow-type\",\"~:auto-height\",\"~:content\",[\"^ \",\"~:type\",\"root\",\"~:key\",\"1r86dcy9p58\",\"~:children\",[[\"^ \",\"^7\",\"paragraph-set\",\"^9\",[[\"^ \",\"~:line-height\",\"1.4\",\"~:font-style\",\"normal\",\"^9\",[[\"^ \",\"^:\",\"\",\"^;\",\"normal\",\"~:text-transform\",\"none\",\"~:font-id\",\"sourcesanspro\",\"^8\",\"1fjx7ben114\",\"~:font-size\",\"24\",\"~:font-weight\",\"400\",\"~:font-variant-id\",\"regular\",\"~:text-decoration\",\"none\",\"~:letter-spacing\",\"0\",\"~:fills\",[],\"~:font-family\",\"sourcesanspro\",\"~:text\",\"The trigger defines the user action that will start the interaction. Penpot currently provides the following triggers (more of them will come):\"]],\"^<\",\"none\",\"~:text-align\",\"left\",\"^=\",\"sourcesanspro\",\"^8\",\"cij53\",\"^>\",\"0\",\"^?\",\"400\",\"~:text-direction\",\"ltr\",\"^7\",\"paragraph\",\"^@\",\"regular\",\"^A\",\"none\",\"^B\",\"0\",\"^C\",[],\"^D\",\"sourcesanspro\"],[\"^ \",\"^:\",\"1.4\",\"^;\",\"normal\",\"^9\",[[\"^ \",\"^:\",\"\",\"^;\",\"normal\",\"^<\",\"none\",\"^=\",\"sourcesanspro\",\"^8\",\"21yhyt9l8uh\",\"^>\",\"24\",\"^?\",\"400\",\"^@\",\"regular\",\"^A\",\"none\",\"^B\",\"0\",\"^C\",[],\"^D\",\"sourcesanspro\",\"^E\",\"\"]],\"^<\",\"none\",\"^F\",\"left\",\"^=\",\"sourcesanspro\",\"^8\",\"fgv3l\",\"^>\",\"24\",\"^?\",\"400\",\"^G\",\"ltr\",\"^7\",\"paragraph\",\"^@\",\"regular\",\"^A\",\"none\",\"^B\",\"0\",\"^C\",[],\"^D\",\"sourcesanspro\"],[\"^ \",\"^:\",\"1.4\",\"^;\",\"normal\",\"^9\",[[\"^ \",\"^:\",\"\",\"^;\",\"normal\",\"^<\",\"none\",\"^=\",\"sourcesanspro\",\"^8\",\"19ji8i80hsm\",\"^>\",\"24\",\"^?\",\"400\",\"^@\",\"regular\",\"^A\",\"none\",\"^B\",\"0\",\"^C\",[],\"^D\",\"sourcesanspro\",\"^E\",\"- On click: when user clicks or tap the hotspot.\"]],\"^<\",\"none\",\"^F\",\"left\",\"^=\",\"sourcesanspro\",\"^8\",\"e2thg\",\"^>\",\"0\",\"^?\",\"400\",\"^G\",\"ltr\",\"^7\",\"paragraph\",\"^@\",\"regular\",\"^A\",\"none\",\"^B\",\"0\",\"^C\",[],\"^D\",\"sourcesanspro\"],[\"^ \",\"^:\",\"1.4\",\"^;\",\"normal\",\"^9\",[[\"^ \",\"^:\",\"\",\"^;\",\"normal\",\"^<\",\"none\",\"^=\",\"sourcesanspro\",\"^8\",\"gvj74uc2uc\",\"^>\",\"24\",\"^?\",\"400\",\"^@\",\"regular\",\"^A\",\"none\",\"^B\",\"0\",\"^C\",[],\"^D\",\"sourcesanspro\",\"^E\",\"- Mouse enter: when the mouse enter the hotspot area.\"]],\"^<\",\"none\",\"^F\",\"left\",\"^=\",\"sourcesanspro\",\"^8\",\"civc1\",\"^>\",\"0\",\"^?\",\"400\",\"^G\",\"ltr\",\"^7\",\"paragraph\",\"^@\",\"regular\",\"^A\",\"none\",\"^B\",\"0\",\"^C\",[],\"^D\",\"sourcesanspro\"],[\"^ \",\"^:\",\"1.4\",\"^;\",\"normal\",\"^9\",[[\"^ \",\"^:\",\"\",\"^;\",\"normal\",\"^<\",\"none\",\"^=\",\"sourcesanspro\",\"^8\",\"x3d0k98pu2\",\"^>\",\"24\",\"^?\",\"400\",\"^@\",\"regular\",\"^A\",\"none\",\"^B\",\"0\",\"^C\",[],\"^D\",\"sourcesanspro\",\"^E\",\"- Mouse leave: when the mouse leaves the hotspot area.\"]],\"^<\",\"none\",\"^F\",\"left\",\"^=\",\"sourcesanspro\",\"^8\",\"5417i\",\"^>\",\"0\",\"^?\",\"400\",\"^G\",\"ltr\",\"^7\",\"paragraph\",\"^@\",\"regular\",\"^A\",\"none\",\"^B\",\"0\",\"^C\",[],\"^D\",\"sourcesanspro\"],[\"^ \",\"^:\",\"1.4\",\"^;\",\"normal\",\"^9\",[[\"^ \",\"^:\",\"\",\"^;\",\"normal\",\"^<\",\"none\",\"^=\",\"sourcesanspro\",\"^8\",\"1vy4ufwv8zk\",\"^>\",\"24\",\"^?\",\"400\",\"^@\",\"regular\",\"^A\",\"none\",\"^B\",\"0\",\"^C\",[],\"^D\",\"sourcesanspro\",\"^E\",\"- After delay: when a certain time has passed after an artboard is shown. Note: this can only be set at artboards.\"]],\"^<\",\"none\",\"^F\",\"left\",\"^=\",\"sourcesanspro\",\"^8\",\"fu1m0\",\"^>\",\"0\",\"^?\",\"400\",\"^G\",\"ltr\",\"^7\",\"paragraph\",\"^@\",\"regular\",\"^A\",\"none\",\"^B\",\"0\",\"^C\",[],\"^D\",\"sourcesanspro\"]]]],\"~:vertical-align\",\"\"],\"~:name\",\"empty-fills-text\",\"~:width\",927.0000000047354,\"^7\",\"^E\",\"~:svg-attrs\",[\"^ \"],\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",481.00000762939453,\"~:y\",382.0000047821965]],[\"^M\",[\"^ \",\"~:x\",1408.0000076341296,\"~:y\",381.9999886029866]],[\"^M\",[\"^ \",\"~:x\",1408.0000076341296,\"~:y\",654.0000054110197]],[\"^M\",[\"^ \",\"~:x\",481.00000762939453,\"~:y\",654.0000215902297]]],\"~:transform-inverse\",[\"^2\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:page-id\",\"~ub67e0975-9540-809b-8004-fc65f513641e\",\"~:id\",\"~u3238c45b-33fb-801d-8007-0f19b62450a7\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:position-data\",[[\"~#rect\",[\"^ \",\"~:y\",412.91651947252967,\"^;\",\"normal\",\"^<\",\"none\",\"^>\",\"24px\",\"^?\",\"400\",\"~:y1\",2.4166717529296875,\"^J\",915.9666748046875,\"^A\",\"none\",\"^B\",\"normal\",\"~:x\",480.7500076317621,\"~:x1\",0,\"~:y2\",31.166671752929688,\"^C\",[],\"~:x2\",915.9666748046875,\"~:direction\",\"ltr\",\"^D\",\"\\\"Rubik\\\"\",\"~:height\",28.75,\"^E\",\"The trigger defines the user action that will start the interaction. Penpot currently \"]],[\"^S\",[\"^ \",\"~:y\",446.51651031725623,\"^;\",\"normal\",\"^<\",\"none\",\"^>\",\"24px\",\"^?\",\"400\",\"^T\",36.01666259765625,\"^J\",627.933349609375,\"^A\",\"none\",\"^B\",\"normal\",\"~:x\",480.7500076317621,\"^U\",0,\"^V\",64.76666259765625,\"^C\",[],\"^W\",627.933349609375,\"^X\",\"ltr\",\"^D\",\"\\\"Rubik\\\"\",\"^Y\",28.75,\"^E\",\"provides the following triggers (more of them will come):\"]],[\"^S\",[\"^ \",\"~:y\",480.11651642077186,\"^;\",\"normal\",\"^<\",\"none\",\"^>\",\"24px\",\"^?\",\"400\",\"^T\",69.61666870117188,\"^J\",5.883331298828125,\"^A\",\"none\",\"^B\",\"normal\",\"~:x\",480.7500076317621,\"^U\",0,\"^V\",98.36666870117188,\"^C\",[],\"^W\",5.883331298828125,\"^X\",\"ltr\",\"^D\",\"\\\"Rubik\\\"\",\"^Y\",28.75,\"^E\",\" \"]],[\"^S\",[\"^ \",\"~:y\",513.7165072654984,\"^;\",\"normal\",\"^<\",\"none\",\"^>\",\"24px\",\"^?\",\"400\",\"^T\",103.21665954589844,\"^J\",516.3333129882812,\"^A\",\"none\",\"^B\",\"normal\",\"~:x\",480.7500076317621,\"^U\",0,\"^V\",131.96665954589844,\"^C\",[],\"^W\",516.3333129882812,\"^X\",\"ltr\",\"^D\",\"\\\"Rubik\\\"\",\"^Y\",28.75,\"^E\",\"- On click: when user clicks or tap the hotspot.\"]],[\"^S\",[\"^ \",\"~:y\",547.316513369014,\"^;\",\"normal\",\"^<\",\"none\",\"^>\",\"24px\",\"^?\",\"400\",\"^T\",136.81666564941406,\"^J\",617.433349609375,\"^A\",\"none\",\"^B\",\"normal\",\"~:x\",480.7500076317621,\"^U\",0,\"^V\",165.56666564941406,\"^C\",[],\"^W\",617.433349609375,\"^X\",\"ltr\",\"^D\",\"\\\"Rubik\\\"\",\"^Y\",28.75,\"^E\",\"- Mouse enter: when the mouse enter the hotspot area.\"]],[\"^S\",[\"^ \",\"~:y\",580.9165194725297,\"^;\",\"normal\",\"^<\",\"none\",\"^>\",\"24px\",\"^?\",\"400\",\"^T\",170.4166717529297,\"^J\",627.3499755859375,\"^A\",\"none\",\"^B\",\"normal\",\"~:x\",480.7500076317621,\"^U\",0,\"^V\",199.1666717529297,\"^C\",[],\"^W\",627.3499755859375,\"^X\",\"ltr\",\"^D\",\"\\\"Rubik\\\"\",\"^Y\",28.75,\"^E\",\"- Mouse leave: when the mouse leaves the hotspot area.\"]],[\"^S\",[\"^ \",\"~:y\",614.5165103172562,\"^;\",\"normal\",\"^<\",\"none\",\"^>\",\"24px\",\"^?\",\"400\",\"^T\",204.01666259765625,\"^J\",882.2666625976562,\"^A\",\"none\",\"^B\",\"normal\",\"~:x\",480.7500076317621,\"^U\",0,\"^V\",232.76666259765625,\"^C\",[],\"^W\",882.2666625976562,\"^X\",\"ltr\",\"^D\",\"\\\"Rubik\\\"\",\"^Y\",28.75,\"^E\",\"- After delay: when a certain time has passed after an artboard is shown. Note: \"]],[\"^S\",[\"^ \",\"~:y\",648.1165164207719,\"^;\",\"normal\",\"^<\",\"none\",\"^>\",\"24px\",\"^?\",\"400\",\"^T\",237.61666870117188,\"^J\",365.58331298828125,\"^A\",\"none\",\"^B\",\"normal\",\"~:x\",480.7500076317621,\"^U\",0,\"^V\",266.3666687011719,\"^C\",[],\"^W\",365.58331298828125,\"^X\",\"ltr\",\"^D\",\"\\\"Rubik\\\"\",\"^Y\",28.75,\"^E\",\"this can only be set at artboards.\"]]],\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:strokes\",[],\"~:x\",481.0000076293944,\"~:selrect\",[\"^S\",[\"^ \",\"~:x\",481.0000076293944,\"~:y\",381.99999669259154,\"^J\",927.0000000047354,\"^Y\",272.0000168080332,\"^U\",481.0000076293944,\"^T\",381.99999669259154,\"^W\",1408.0000076341298,\"^V\",654.0000135006247]],\"~:flip-x\",null,\"^Y\",272.0000168080332,\"~:flip-y\",null]]" + } + }, + "~:id": "~u58c5cc60-d124-81bd-8007-0f19b52444ec", + "~:name": "Page 1" + } + }, + "~:id": "~u58c5cc60-d124-81bd-8007-0f19b52444eb", + "~:options": { + "~:components-v2": true, + "~:base-font-size": "16px" + } + } +} \ No newline at end of file diff --git a/frontend/playwright/ui/render-wasm-specs/texts.spec.js b/frontend/playwright/ui/render-wasm-specs/texts.spec.js index 7c7f33da29..5684da884c 100644 --- a/frontend/playwright/ui/render-wasm-specs/texts.spec.js +++ b/frontend/playwright/ui/render-wasm-specs/texts.spec.js @@ -367,6 +367,22 @@ test("Renders a file with texts with tabs", async ({ await expect(workspace.canvas).toHaveScreenshot(); }); +test("Renders a file with empty text fills and strokes", async ({ + page, +}) => { + const workspace = new WasmWorkspacePage(page); + await workspace.setupEmptyFile(); + await workspace.mockGetFile("render-wasm/get-file-text-empty-fills.json"); + + await workspace.goToWorkspace({ + id: "58c5cc60-d124-81bd-8007-0f19b52444eb", + pageId: "58c5cc60-d124-81bd-8007-0f19b52444ec", + }); + + await workspace.waitForFirstRender(); + await expect(workspace.canvas).toHaveScreenshot(); +}); + test.skip("Updates text alignment edition - part 1", async ({ page }) => { const workspace = new WasmWorkspacePage(page); await workspace.setupEmptyFile(); diff --git a/frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Renders-a-file-with-empty-text-fills-and-strokes-1.png b/frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Renders-a-file-with-empty-text-fills-and-strokes-1.png new file mode 100644 index 0000000000000000000000000000000000000000..103e444b9627056c0c168dd260a8aedaa3408a9c GIT binary patch literal 79042 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 literal 0 HcmV?d00001 diff --git a/render-wasm/src/render/text.rs b/render-wasm/src/render/text.rs index da6974eaa3..4a96c429ad 100644 --- a/render-wasm/src/render/text.rs +++ b/render-wasm/src/render/text.rs @@ -28,13 +28,15 @@ pub fn stroke_paragraph_builder_group_from_text( let fonts = get_font_collection(); let mut paragraph_group = Vec::new(); let remove_stroke_alpha = use_shadow.unwrap_or(false) && !stroke.is_transparent(); + let is_stroke_render = true; for paragraph in text_content.paragraphs() { let mut stroke_paragraphs_map: std::collections::HashMap = std::collections::HashMap::new(); for span in paragraph.children().iter() { - let text_paint: skia_safe::Handle<_> = merge_fills(span.fills(), *bounds); + let text_paint: skia_safe::Handle<_> = + merge_fills(span.fills(), *bounds, is_stroke_render); let stroke_paints = get_text_stroke_paints( stroke, bounds, diff --git a/render-wasm/src/shapes/fills.rs b/render-wasm/src/shapes/fills.rs index 6a772527eb..0faea52482 100644 --- a/render-wasm/src/shapes/fills.rs +++ b/render-wasm/src/shapes/fills.rs @@ -226,12 +226,16 @@ pub fn get_fill_shader(fill: &Fill, bounding_box: &Rect) -> Option } } -pub fn merge_fills(fills: &[Fill], bounding_box: Rect) -> skia::Paint { +pub fn merge_fills(fills: &[Fill], bounding_box: Rect, is_stroke_render: bool) -> skia::Paint { let mut combined_shader: Option = None; let mut fills_paint = skia::Paint::default(); if fills.is_empty() { - combined_shader = Some(skia::shaders::color(skia::Color::TRANSPARENT)); + combined_shader = if is_stroke_render { + Some(skia::shaders::color(skia::Color::TRANSPARENT)) + } else { + Some(skia::shaders::color(skia::Color::BLACK)) + }; fills_paint.set_shader(combined_shader); return fills_paint; } diff --git a/render-wasm/src/shapes/text.rs b/render-wasm/src/shapes/text.rs index 1e28bdf5ca..c87049cc54 100644 --- a/render-wasm/src/shapes/text.rs +++ b/render-wasm/src/shapes/text.rs @@ -351,6 +351,7 @@ impl TextContent { ) -> Vec { let fonts = get_font_collection(); let fallback_fonts = get_fallback_fonts(); + let is_stroke_render = false; let mut paragraph_group = Vec::new(); for paragraph in self.paragraphs() { @@ -363,6 +364,7 @@ impl TextContent { fallback_fonts, remove_alpha, paragraph.line_height(), + is_stroke_render, ); let text: String = span.apply_text_transform(); builder.push_style(&text_style); @@ -678,6 +680,7 @@ impl TextSpan { fallback_fonts: &HashSet, remove_alpha: bool, paragraph_line_height: f32, + is_stroke_render: bool, ) -> skia::textlayout::TextStyle { let mut style = skia::textlayout::TextStyle::default(); let mut paint = paint::Paint::default(); @@ -686,7 +689,7 @@ impl TextSpan { paint.set_color(skia::Color::BLACK); paint.set_alpha(255); } else { - paint = merge_fills(&self.fills, *content_bounds); + paint = merge_fills(&self.fills, *content_bounds, is_stroke_render); } let max_line_height = f32::max(paragraph_line_height, self.line_height); @@ -723,11 +726,13 @@ impl TextSpan { remove_alpha: bool, paragraph_line_height: f32, ) -> skia::textlayout::TextStyle { + let is_stroke_render = true; let mut style = self.to_style( &Rect::default(), fallback_fonts, remove_alpha, paragraph_line_height, + is_stroke_render, ); if remove_alpha { let mut paint = skia::Paint::default();