fix-cairo-bitmap-release
svn: r12865
This commit is contained in:
parent
e5027cb7b0
commit
768577fcaa
|
@ -2867,6 +2867,10 @@ void wxWindowDC::Initialize(wxWindowDC_Xinit* init)
|
||||||
|
|
||||||
void wxWindowDC::Destroy(void)
|
void wxWindowDC::Destroy(void)
|
||||||
{
|
{
|
||||||
|
#ifdef WX_USE_CAIRO
|
||||||
|
ReleaseCairoDev();
|
||||||
|
#endif
|
||||||
|
|
||||||
if (PEN_GC) XFreeGC(DPY, PEN_GC);
|
if (PEN_GC) XFreeGC(DPY, PEN_GC);
|
||||||
if (BRUSH_GC) XFreeGC(DPY, BRUSH_GC);
|
if (BRUSH_GC) XFreeGC(DPY, BRUSH_GC);
|
||||||
if (TEXT_GC) XFreeGC(DPY, TEXT_GC);
|
if (TEXT_GC) XFreeGC(DPY, TEXT_GC);
|
||||||
|
@ -3726,7 +3730,7 @@ void wxWindowDC::InitCairoDev()
|
||||||
void wxWindowDC::ReleaseCairoDev()
|
void wxWindowDC::ReleaseCairoDev()
|
||||||
{
|
{
|
||||||
if (X->cairo_dev) {
|
if (X->cairo_dev) {
|
||||||
cairo_destroy(CAIRO_DEV);
|
cairo_destroy_it(CAIRO_DEV);
|
||||||
X->cairo_dev = 0;
|
X->cairo_dev = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@ typedef cairo_matrix_t cairo_matrix_p;
|
||||||
# define cairo_default_matrix(dev) cairo_identity_matrix(dev)
|
# define cairo_default_matrix(dev) cairo_identity_matrix(dev)
|
||||||
# undef cairo_init_clip
|
# undef cairo_init_clip
|
||||||
# define cairo_init_clip(dev) cairo_reset_clip(dev)
|
# 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
|
# else
|
||||||
/* Old Cairo API (0.5 and up) */
|
/* Old Cairo API (0.5 and up) */
|
||||||
typedef cairo_matrix_t *cairo_matrix_p;
|
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_matrix(CAIRO_DEV, m) cairo_set_matrix(CAIRO_DEV, m)
|
||||||
# define cairo_set_create_xlib(dev, display, drawable, vis, w, h) \
|
# define cairo_set_create_xlib(dev, display, drawable, vis, w, h) \
|
||||||
dev = cairo_create(); cairo_set_target_drawable(dev, wxAPP_DISPLAY, DRAWABLE)
|
dev = cairo_create(); cairo_set_target_drawable(dev, wxAPP_DISPLAY, DRAWABLE)
|
||||||
|
# define cairo_destroy_it(c) cairo_destroy(c)
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user