summaryrefslogtreecommitdiff
path: root/src/win32/cairo-win32-display-surface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/win32/cairo-win32-display-surface.c')
-rw-r--r--src/win32/cairo-win32-display-surface.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/win32/cairo-win32-display-surface.c b/src/win32/cairo-win32-display-surface.c
index ccd285d7..03906252 100644
--- a/src/win32/cairo-win32-display-surface.c
+++ b/src/win32/cairo-win32-display-surface.c
@@ -429,6 +429,8 @@ _cairo_win32_display_surface_finish (void *abstract_surface)
DeleteDC (surface->win32.dc);
}
+ _cairo_win32_display_surface_discard_fallback (surface);
+
if (surface->initial_clip_rgn)
DeleteObject (surface->initial_clip_rgn);
@@ -758,6 +760,7 @@ _cairo_win32_display_surface_discard_fallback (cairo_win32_display_surface_t *su
TRACE ((stderr, "%s (surface=%d)\n",
__FUNCTION__, surface->win32.base.unique_id));
+ cairo_surface_finish (surface->fallback);
cairo_surface_destroy (surface->fallback);
surface->fallback = NULL;
}