summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@gnome.org>2020-09-22 13:18:24 -0500
committerFederico Mena Quintero <federico@gnome.org>2020-10-02 11:54:45 -0500
commit241a47bc27af5cc862637b32b80438db8ac1d65b (patch)
treea930d4026ee7df46c04b414bd4354232e7ab4de9
parent921ba5cacbcdf71efa781df83caf9c65ea5d1b2c (diff)
downloadlibrsvg-241a47bc27af5cc862637b32b80438db8ac1d65b.tar.gz
Always grow the stack in push_new_viewport()
We didn't grow the stack if the new vbox would be the same as the last one (i.e. when the passed vbox == None). Now we always grow the stack. The idea is that eventually we'll be able to automatically restore the last viewport's transform on Drop.
-rw-r--r--rsvg_internals/src/drawing_ctx.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/rsvg_internals/src/drawing_ctx.rs b/rsvg_internals/src/drawing_ctx.rs
index 73bbb4b8..bd6cc3f3 100644
--- a/rsvg_internals/src/drawing_ctx.rs
+++ b/rsvg_internals/src/drawing_ctx.rs
@@ -380,10 +380,10 @@ impl DrawingCtx {
if let Some(ClipMode::ClipToVbox) = clip_mode {
clip_to_rectangle(&self.cr, &*vbox);
}
- self.push_view_box(vbox.width(), vbox.height())
- } else {
- self.get_view_params()
}
+
+ let vbox = vbox.unwrap_or_else(|| self.get_top_viewbox());
+ self.push_view_box(vbox.width(), vbox.height())
})
}