X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8362e67ca7c330fd5ac67ab395d56bcc0c786494..a5655d37db9baabce654849fd66173f95f74e230:/src/gtk/bitmap.cpp diff --git a/src/gtk/bitmap.cpp b/src/gtk/bitmap.cpp index 0a519cf24e..c296558642 100644 --- a/src/gtk/bitmap.cpp +++ b/src/gtk/bitmap.cpp @@ -79,6 +79,23 @@ wxMask::wxMask() m_bitmap = NULL; } +wxMask::wxMask(const wxMask& mask) +{ + if ( !mask.m_bitmap ) + { + m_bitmap = NULL; + return; + } + + // create a copy of an existing mask + gint w, h; + gdk_drawable_get_size(mask.m_bitmap, &w, &h); + m_bitmap = gdk_pixmap_new(mask.m_bitmap, w, h, 1); + + wxGtkObject gc(gdk_gc_new(m_bitmap)); + gdk_draw_drawable(m_bitmap, gc, mask.m_bitmap, 0, 0, 0, 0, -1, -1); +} + wxMask::wxMask( const wxBitmap& bitmap, const wxColour& colour ) { m_bitmap = NULL; @@ -859,12 +876,7 @@ wxGDIRefData* wxBitmap::CloneGDIRefData(const wxGDIRefData* data) const } if (oldRef->m_mask != NULL) { - newRef->m_mask = new wxMask; - newRef->m_mask->m_bitmap = gdk_pixmap_new( - oldRef->m_mask->m_bitmap, oldRef->m_width, oldRef->m_height, 1); - wxGtkObject gc(gdk_gc_new(newRef->m_mask->m_bitmap)); - gdk_draw_drawable(newRef->m_mask->m_bitmap, - gc, oldRef->m_mask->m_bitmap, 0, 0, 0, 0, -1, -1); + newRef->m_mask = new wxMask(*oldRef->m_mask); } return newRef;