From dca2e4f034be83f8ac293fb579cd936681307d2a Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Fri, 22 Jun 2018 13:49:00 -0500 Subject: draw_node_from_stack(): Ahem, make this work in the original way. What was I thinking? --- rsvg_internals/src/drawing_ctx.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/rsvg_internals/src/drawing_ctx.rs b/rsvg_internals/src/drawing_ctx.rs index f847fb57..f7d8c60e 100644 --- a/rsvg_internals/src/drawing_ctx.rs +++ b/rsvg_internals/src/drawing_ctx.rs @@ -443,15 +443,14 @@ impl<'a> DrawingCtx { node: &RsvgNode, clipping: bool, ) { - let mut draw = false; - if let Some(top) = self.drawsub_stack.pop() { - if rc_node_ptr_eq(&top, node) { - draw = true; - } + let mut draw = true; - self.drawsub_stack.push(top); - } else { - draw = true; + let stack_top = self.drawsub_stack.pop(); + + if let Some(ref top) = stack_top { + if !rc_node_ptr_eq(&top, node) { + draw = false; + } } if draw { @@ -460,6 +459,10 @@ impl<'a> DrawingCtx { node.draw(node, cascaded, self, clipping); } } + + if let Some(top) = stack_top { + self.drawsub_stack.push(top); + } } pub fn add_node_and_ancestors_to_stack(&mut self, node: &RsvgNode) { -- cgit v1.2.1