summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/drawing_ctx.rs9
-rw-r--r--src/text.rs2
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(),