summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUli Schlachter <psychon@znc.in>2012-09-25 11:39:42 +0200
committerUli Schlachter <psychon@znc.in>2012-09-25 11:39:42 +0200
commitf2720e2ba1f68e9ec8f8822e41f4045663e99ad8 (patch)
treeaf2db043a37e59e135017d2ded758efcef25d7e4
parentb264ae76bd2621363cbc1e2b5bcdc4b0583d4b1f (diff)
xcb: Add a missing check for FillRectangles
Fixes: big-empty-box big-little-box operator operator-alpha surface-pattern-operator unbounded-operator Signed-off-by: Uli Schlachter <psychon@znc.in>
-rw-r--r--src/cairo-xcb-surface-render.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c
index 09a0236a..dff62afd 100644
--- a/src/cairo-xcb-surface-render.c
+++ b/src/cairo-xcb-surface-render.c
@@ -2384,10 +2384,15 @@ _cairo_xcb_surface_fixup_unbounded_boxes (cairo_xcb_surface_t *dst,
}
if (likely (status == CAIRO_STATUS_SUCCESS)) {
- status = _render_fill_boxes (dst,
- CAIRO_OPERATOR_CLEAR,
- CAIRO_COLOR_TRANSPARENT,
- &clear);
+ if (dst->connection->flags & CAIRO_XCB_RENDER_HAS_FILL_RECTANGLES)
+ status = _render_fill_boxes (dst,
+ CAIRO_OPERATOR_CLEAR,
+ CAIRO_COLOR_TRANSPARENT,
+ &clear);
+ else
+ status = _cairo_xcb_surface_core_fill_boxes (dst,
+ CAIRO_COLOR_TRANSPARENT,
+ &clear);
}
_cairo_boxes_fini (&clear);