4 changed files with 54 additions and 6 deletions
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
diff --git a/src/cairo-surface.c b/src/cairo-surface.c
|
||||
index 86df1272e..0a95047f3 100644
|
||||
--- a/src/cairo-surface.c
|
||||
+++ b/src/cairo-surface.c
|
||||
@@ -2174,6 +2174,7 @@ _cairo_surface_paint (cairo_surface_t *surface,
|
||||
const cairo_clip_t *clip) |
||||
{ |
||||
cairo_int_status_t status; |
||||
+ cairo_bool_t is_clear;
|
||||
|
||||
TRACE ((stderr, "%s\n", __FUNCTION__)); |
||||
if (unlikely (surface->status)) |
||||
@@ -2196,8 +2197,9 @@ _cairo_surface_paint (cairo_surface_t *surface,
|
||||
return status; |
||||
|
||||
status = surface->backend->paint (surface, op, source, clip); |
||||
- if (status != CAIRO_INT_STATUS_NOTHING_TO_DO) {
|
||||
- surface->is_clear = op == CAIRO_OPERATOR_CLEAR && clip == NULL;
|
||||
+ is_clear = op == CAIRO_OPERATOR_CLEAR && clip == NULL;
|
||||
+ if (status != CAIRO_INT_STATUS_NOTHING_TO_DO || is_clear) {
|
||||
+ surface->is_clear = is_clear;
|
||||
surface->serial++; |
||||
} |
||||
|
Loading…
Reference in new issue