[librsvg: 36/90] marker.rs: use DrawingCtx.with_saved_cr()



commit eadebf4bd201e6405b653ccbade0c39e64610269
Author: Federico Mena Quintero <federico gnome org>
Date:   Wed Mar 13 18:47:06 2019 -0600

    marker.rs: use DrawingCtx.with_saved_cr()

 rsvg_internals/src/marker.rs | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)
---
diff --git a/rsvg_internals/src/marker.rs b/rsvg_internals/src/marker.rs
index 5b54cb6d..97fa7a27 100644
--- a/rsvg_internals/src/marker.rs
+++ b/rsvg_internals/src/marker.rs
@@ -174,25 +174,23 @@ impl NodeMarker {
             -self.ref_y.get().normalize(&values, &params),
         );
 
-        cr.save();
+        draw_ctx.with_saved_cr(&mut |dc| {
+            let cr = dc.get_cairo_context();
 
-        cr.set_matrix(affine);
+            cr.set_matrix(affine);
 
-        if !values.is_overflow() {
-            if let Some(vbox) = self.vbox.get() {
-                draw_ctx.clip(vbox.x, vbox.y, vbox.width, vbox.height);
-            } else {
-                draw_ctx.clip(0.0, 0.0, marker_width, marker_height);
+            if !values.is_overflow() {
+                if let Some(vbox) = self.vbox.get() {
+                    dc.clip(vbox.x, vbox.y, vbox.width, vbox.height);
+                } else {
+                    dc.clip(0.0, 0.0, marker_width, marker_height);
+                }
             }
-        }
 
-        let res = draw_ctx.with_discrete_layer(node, values, clipping, &mut |dc| {
-            node.draw_children(&cascaded, dc, clipping)
-        });
-
-        cr.restore();
-
-        res
+            dc.with_discrete_layer(node, values, clipping, &mut |dc| {
+                node.draw_children(&cascaded, dc, clipping)
+            })
+        })
     }
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]