diff options
-rw-r--r-- | src/drawing_ctx.rs | 9 | ||||
-rw-r--r-- | src/text.rs | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/drawing_ctx.rs b/src/drawing_ctx.rs index d6632888..9e5bf85f 100644 --- a/src/drawing_ctx.rs +++ b/src/drawing_ctx.rs @@ -366,8 +366,9 @@ impl DrawingCtx { pub fn get_transform_for_stacking_ctx( &self, stacking_ctx: &StackingContext, + clipping: bool, ) -> Result<ValidTransform, RenderingError> { - if stacking_ctx.should_isolate() { + if stacking_ctx.should_isolate() && !clipping { let affines = CompositingAffines::new( *self.get_transform(), self.initial_viewport.transform, @@ -1329,10 +1330,12 @@ impl DrawingCtx { values, clipping, None, - &mut |an, dc, transform| { + &mut |an, dc, _transform| { let cr = dc.cr.clone(); + + let transform = dc.get_transform_for_stacking_ctx(stacking_ctx, clipping)?; let mut path_helper = - PathHelper::new(&cr, *transform, &shape.path, shape.stroke.line_cap); + PathHelper::new(&cr, transform, &shape.path, shape.stroke.line_cap); if clipping { if shape.is_visible { diff --git a/src/text.rs b/src/text.rs index 77e3fb60..997e7ae4 100644 --- a/src/text.rs +++ b/src/text.rs @@ -784,7 +784,7 @@ impl ElementTrait for Text { ); let layout_text = { - let transform = draw_ctx.get_transform_for_stacking_ctx(&stacking_ctx)?; + let transform = draw_ctx.get_transform_for_stacking_ctx(&stacking_ctx, clipping)?; let layout_context = LayoutContext { writing_mode: values.writing_mode(), |