diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c index 0eb6e7d..d0757e8 100644 --- a/src/cairo-gstate.c +++ b/src/cairo-gstate.c @@ -795,7 +795,6 @@ _cairo_gstate_copy_transformed_pattern (cairo_gstate_t *gstate, if (status) return status; - _cairo_pattern_transform (pattern, ctm_inverse); if (cairo_pattern_get_type (original) == CAIRO_PATTERN_TYPE_SURFACE) { surface_pattern = (cairo_surface_pattern_t *) original; @@ -804,6 +803,8 @@ _cairo_gstate_copy_transformed_pattern (cairo_gstate_t *gstate, _cairo_pattern_transform (pattern, &surface->device_transform); } + _cairo_pattern_transform (pattern, ctm_inverse); + return CAIRO_STATUS_SUCCESS; }