fix-cairo-bitmap-release

svn: r12865
This commit is contained in:
Matthew Flatt 2008-12-15 23:15:27 +00:00
parent e5027cb7b0
commit 768577fcaa
2 changed files with 7 additions and 1 deletions

View File

@ -2867,6 +2867,10 @@ void wxWindowDC::Initialize(wxWindowDC_Xinit* init)
void wxWindowDC::Destroy(void)
{
#ifdef WX_USE_CAIRO
ReleaseCairoDev();
#endif
if (PEN_GC) XFreeGC(DPY, PEN_GC);
if (BRUSH_GC) XFreeGC(DPY, BRUSH_GC);
if (TEXT_GC) XFreeGC(DPY, TEXT_GC);
@ -3726,7 +3730,7 @@ void wxWindowDC::InitCairoDev()
void wxWindowDC::ReleaseCairoDev()
{
if (X->cairo_dev) {
cairo_destroy(CAIRO_DEV);
cairo_destroy_it(CAIRO_DEV);
X->cairo_dev = 0;
}
}

View File

@ -24,6 +24,7 @@ typedef cairo_matrix_t cairo_matrix_p;
# define cairo_default_matrix(dev) cairo_identity_matrix(dev)
# undef cairo_init_clip
# define cairo_init_clip(dev) cairo_reset_clip(dev)
# define cairo_destroy_it(c) (cairo_surface_destroy(cairo_get_target(c)), cairo_destroy(c))
# else
/* Old Cairo API (0.5 and up) */
typedef cairo_matrix_t *cairo_matrix_p;
@ -31,5 +32,6 @@ typedef cairo_matrix_t *cairo_matrix_p;
# define cairo__set_matrix(CAIRO_DEV, m) cairo_set_matrix(CAIRO_DEV, m)
# define cairo_set_create_xlib(dev, display, drawable, vis, w, h) \
dev = cairo_create(); cairo_set_target_drawable(dev, wxAPP_DISPLAY, DRAWABLE)
# define cairo_destroy_it(c) cairo_destroy(c)
# endif
#endif