summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/cairo-render-context.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/extension/internal/cairo-render-context.cpp')
-rw-r--r--src/extension/internal/cairo-render-context.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp
index e2e154791..f2ee32c74 100644
--- a/src/extension/internal/cairo-render-context.cpp
+++ b/src/extension/internal/cairo-render-context.cpp
@@ -590,13 +590,16 @@ CairoRenderContext::popLayer(void)
cairo_set_source_rgba(clip_ctx->_cr, 1.0, 1.0, 1.0, 1.0);
// copy over the correct CTM
+ // It must be stored in item_transform of current state after pushState.
+ Geom::Matrix item_transform;
if (_state->parent_has_userspace)
- clip_ctx->setTransform(&getParentState()->transform);
+ item_transform = getParentState()->transform;
else
- clip_ctx->setTransform(&_state->transform);
+ item_transform = _state->transform;
// apply the clip path
clip_ctx->pushState();
+ clip_ctx->getCurrentState()->item_transform = item_transform;
_renderer->applyClipPath(clip_ctx, clip_path);
clip_ctx->popState();