diff options
author | Federico Mena Quintero <federico@gnome.org> | 2020-06-19 17:42:54 -0500 |
---|---|---|
committer | Federico Mena Quintero <federico@gnome.org> | 2020-10-02 11:54:01 -0500 |
commit | 0acb7ca90d9730b20164a2529df92f6996e734d2 (patch) | |
tree | 4737426f9cbcc8912e6f2c3522d484120be8f06c | |
parent | d2cd58018703d2c3ebb1351f3d9fe3785e9f2a46 (diff) | |
download | librsvg-0acb7ca90d9730b20164a2529df92f6996e734d2.tar.gz |
Create the drawsub_stack in draw_tree(), not in DrawingCtx::new
-rw-r--r-- | rsvg_internals/src/drawing_ctx.rs | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/rsvg_internals/src/drawing_ctx.rs b/rsvg_internals/src/drawing_ctx.rs index 71da8650..f42b57bc 100644 --- a/rsvg_internals/src/drawing_ctx.rs +++ b/rsvg_internals/src/drawing_ctx.rs @@ -160,7 +160,6 @@ pub fn draw_tree( cascaded: &CascadedValues<'_>, ) -> Result<BoundingBox, RenderingError> { let mut draw_ctx = DrawingCtx::new( - limit_to_stack, cr, viewport, dpi, @@ -168,12 +167,17 @@ pub fn draw_tree( testing, ); + if let Some(limit_to_stack) = limit_to_stack { + for n in limit_to_stack.ancestors() { + draw_ctx.drawsub_stack.push(n.clone()); + } + } + draw_ctx.draw_node_from_stack(node, acquired_nodes, cascaded, false) } impl DrawingCtx { fn new( - limit_to_stack: Option<&Node>, cr: &cairo::Context, viewport: Rect, dpi: Dpi, @@ -209,7 +213,7 @@ impl DrawingCtx { let mut view_box_stack = Vec::new(); view_box_stack.push(vbox); - let mut draw_ctx = DrawingCtx { + DrawingCtx { initial_transform, rect, dpi, @@ -219,15 +223,7 @@ impl DrawingCtx { drawsub_stack: Vec::new(), measuring, testing, - }; - - if let Some(limit_to_stack) = limit_to_stack { - for n in limit_to_stack.ancestors() { - draw_ctx.drawsub_stack.push(n.clone()); - } } - - draw_ctx } pub fn toplevel_viewport(&self) -> Rect { |