X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5276b0a53cef4815230e39b54d2ecda14f72cbd1..7aa18fc78675ced488adc9d42ad306a539334680:/src/x11/bitmap.cpp diff --git a/src/x11/bitmap.cpp b/src/x11/bitmap.cpp index fac57599b1..cded72e272 100644 --- a/src/x11/bitmap.cpp +++ b/src/x11/bitmap.cpp @@ -34,6 +34,10 @@ bool wxGetImageFromDrawable(GR_DRAW_ID drawable, int srcX, int srcY, int width, int height, wxImage& image); #endif +static WXPixmap wxGetSubPixmap( WXDisplay* xdisplay, WXPixmap xpixmap, + int x, int y, int width, int height, + int depth ); + #if wxUSE_XPM #if wxHAVE_LIB_XPM #include @@ -55,6 +59,24 @@ wxMask::wxMask() m_display = NULL; } +wxMask::wxMask(const wxMask& mask) +{ + m_display = mask.m_display; + if ( !mask.m_bitmap ) + { + m_bitmap = NULL; + return; + } + + m_size = mask.m_size; + + // Duplicate the mask bitmap using the existing wxGetSubPixmap() function. + // There are probably/surely better ways to do it. + m_bitmap = wxGetSubPixmap(m_display, mask.m_bitmap, + 0, 0, m_size.x, m_size.y, + 1); +} + wxMask::wxMask( const wxBitmap& bitmap, const wxColour& colour ) { m_bitmap = NULL; @@ -82,6 +104,8 @@ wxMask::~wxMask() bool wxMask::Create( const wxBitmap& bitmap, const wxColour& colour ) { + m_size = bitmap.GetSize(); + #if !wxUSE_NANOX if (m_bitmap) {