summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cairo-analysis-surface.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c
index 90eb3f56..057be529 100644
--- a/src/cairo-analysis-surface.c
+++ b/src/cairo-analysis-surface.c
@@ -416,12 +416,16 @@ _cairo_analysis_surface_mask (void *abstract_surface,
return status;
is_empty = _cairo_rectangle_intersect (&extents, &source_extents);
+ }
+
+ if (_cairo_operator_bounded_by_mask (op)) {
+ cairo_rectangle_int_t mask_extents;
- status = _cairo_pattern_get_extents (mask, &source_extents);
+ status = _cairo_pattern_get_extents (mask, &mask_extents);
if (status)
return status;
- is_empty = _cairo_rectangle_intersect (&extents, &source_extents);
+ is_empty = _cairo_rectangle_intersect (&extents, &mask_extents);
}
is_empty = _cairo_rectangle_intersect (&extents, &surface->current_clip);