From 2b95e6b7a930bf21a27b04077aacb1a5be3baba7 Mon Sep 17 00:00:00 2001 From: Elena Torro Date: Thu, 24 Jul 2025 16:27:46 +0200 Subject: [PATCH] :bug: Fix update canvas background color --- .../ui/render-wasm-specs/shapes.spec.js | 23 ++++++++++++++++++ .../Updates-canvas-background-1.png | Bin 0 -> 32893 bytes render-wasm/src/main.rs | 1 + 3 files changed, 24 insertions(+) create mode 100644 frontend/playwright/ui/render-wasm-specs/shapes.spec.js-snapshots/Updates-canvas-background-1.png diff --git a/frontend/playwright/ui/render-wasm-specs/shapes.spec.js b/frontend/playwright/ui/render-wasm-specs/shapes.spec.js index 5cabe96c27..4440eb08f1 100644 --- a/frontend/playwright/ui/render-wasm-specs/shapes.spec.js +++ b/frontend/playwright/ui/render-wasm-specs/shapes.spec.js @@ -138,3 +138,26 @@ test("Renders shapes with exif rotated images fills and strokes", async ({ await expect(workspace.canvas).toHaveScreenshot(); }); + +test("Updates canvas background", async ({ + page, +}) => { + const workspace = new WasmWorkspacePage(page); + await workspace.setupEmptyFile(); + await workspace.mockGetFile("render-wasm/get-file-text.json"); + + await workspace.goToWorkspace({ + id: "3b0d758a-8c9d-8013-8006-52c8337e5c72", + pageId: "3b0d758a-8c9d-8013-8006-52c8337e5c73", + }); + await workspace.waitForFirstRender({ hideUI: false }); + + const canvasBackgroundInput = workspace.page.getByRole("textbox", { name: 'Color' }); + await canvasBackgroundInput.fill("FABADA"); + await workspace.page.keyboard.press("Enter"); + + // can't hide UI cause this will trigger a re-render + // await workspace.hideUI(); + + await expect(workspace.canvas).toHaveScreenshot(); +}); diff --git a/frontend/playwright/ui/render-wasm-specs/shapes.spec.js-snapshots/Updates-canvas-background-1.png b/frontend/playwright/ui/render-wasm-specs/shapes.spec.js-snapshots/Updates-canvas-background-1.png new file mode 100644 index 0000000000000000000000000000000000000000..01aa3ccd937889a7e6efa02253b6db1fc575f7fa GIT binary patch literal 32893 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 W_*c6rxJl403Kd0lg}j>&-~0#rW_D-* literal 0 HcmV?d00001 diff --git a/render-wasm/src/main.rs b/render-wasm/src/main.rs index 522f71966c..0cde3d5681 100644 --- a/render-wasm/src/main.rs +++ b/render-wasm/src/main.rs @@ -115,6 +115,7 @@ pub extern "C" fn set_canvas_background(raw_color: u32) { with_state_mut!(state, { let color = skia::Color::new(raw_color); state.set_background_color(color); + state.rebuild_tiles(); }); }