X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3f66f6a5b3583b02c34854556eb83e3a808524ce..6ba718d7aee2f519d9146b90424ccec9e2243479:/src/generic/graphicc.cpp diff --git a/src/generic/graphicc.cpp b/src/generic/graphicc.cpp index 1cf971d0e6..c89d338f51 100644 --- a/src/generic/graphicc.cpp +++ b/src/generic/graphicc.cpp @@ -1654,7 +1654,9 @@ wxCairoContext::wxCairoContext( wxGraphicsRenderer* renderer, const wxPrinterDC& #ifdef __WXGTK20__ const wxDCImpl *impl = dc.GetImpl(); - Init( (cairo_t*) impl->GetCairoContext() ); + cairo_t* cr = static_cast(impl->GetCairoContext()); + if (cr) + Init(cairo_reference(cr)); #endif wxSize sz = dc.GetSize(); m_width = sz.x; @@ -1700,7 +1702,7 @@ wxCairoContext::wxCairoContext( wxGraphicsRenderer* renderer, const wxWindowDC& #ifdef __WXGTK3__ cairo_t* cr = static_cast(dc.GetImpl()->GetCairoContext()); if (cr) - Init(cr); + Init(cairo_reference(cr)); #elif defined __WXGTK20__ wxGTKDCImpl *impldc = (wxGTKDCImpl*) dc.GetImpl(); Init( gdk_cairo_create( impldc->GetGDKWindow() ) ); @@ -1775,7 +1777,7 @@ wxCairoContext::wxCairoContext( wxGraphicsRenderer* renderer, const wxMemoryDC& #ifdef __WXGTK3__ cairo_t* cr = static_cast(dc.GetImpl()->GetCairoContext()); if (cr) - Init(cr); + Init(cairo_reference(cr)); #elif defined __WXGTK20__ wxGTKDCImpl *impldc = (wxGTKDCImpl*) dc.GetImpl(); Init( gdk_cairo_create( impldc->GetGDKWindow() ) );