From c8a6d8e1f7feee3ff4521838ff2b4d1402b058e7 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 28 Jul 2020 14:27:53 -0700 Subject: [PATCH] Allow clip paths to nest in the canvas API. Closes #372. --- canvas/src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/canvas/src/lib.rs b/canvas/src/lib.rs index 897b96f1..ba1dc25b 100644 --- a/canvas/src/lib.rs +++ b/canvas/src/lib.rs @@ -358,8 +358,11 @@ impl CanvasRenderingContext2D { let mut clip_path = ClipPath::new(outline); clip_path.set_fill_rule(fill_rule); - let clip_path_id = self.canvas.scene.push_clip_path(clip_path); + if let Some(existing_clip_path) = self.current_state.clip_path.take() { + clip_path.set_clip_path(Some(existing_clip_path)); + } + let clip_path_id = self.canvas.scene.push_clip_path(clip_path); self.current_state.clip_path = Some(clip_path_id); }