summaryrefslogtreecommitdiff
path: root/src/cairo-xlib-surface.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-08-14 13:47:14 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-08-14 13:47:43 +0100
commit84a3b6e2d0b8103cdc17558b502ecfc4c99b98a3 (patch)
tree3b20ebb9adcbfcf97fba4423966cb5df320a9499 /src/cairo-xlib-surface.c
parent2c885a275349c65ec831738ed917ecd16fdd8c65 (diff)
downloadcairo-84a3b6e2d0b8103cdc17558b502ecfc4c99b98a3.tar.gz
xlib: Mark surfaces as finished when the Display is finished/destroyed/closed.
Fixes xlib-surface-source with the recording-surface Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-xlib-surface.c')
-rw-r--r--src/cairo-xlib-surface.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
index 885dc5928..6cc215b54 100644
--- a/src/cairo-xlib-surface.c
+++ b/src/cairo-xlib-surface.c
@@ -466,6 +466,8 @@ _cairo_xlib_surface_finish (void *abstract_surface)
X_DEBUG ((display->display, "finish (drawable=%x)", (unsigned int) surface->drawable));
+ cairo_list_del (&surface->link);
+
status = _cairo_xlib_display_acquire (surface->base.device, &display);
if (unlikely (status))
return status;
@@ -3388,6 +3390,8 @@ found:
surface->b_mask = 0;
}
+ cairo_list_add (&surface->link, &screen->surfaces);
+
return &surface->base;
}