]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/brush.cpp
fixed a memory leak and an initialization problem
[wxWidgets.git] / src / gtk / brush.cpp
index 2f945402ce47202fb9a70cdabc1bd1c1cffdc481..70a2790e4ae08880ff39c36cd20cefa4b2dc3d3f 100644 (file)
@@ -65,10 +65,15 @@ wxBrush::wxBrush( const wxColour &colour, int style )
 wxBrush::wxBrush( const wxBitmap &stippleBitmap )
 {
     m_refData = new wxBrushRefData();
-    M_BRUSHDATA->m_style = wxSTIPPLE;
     M_BRUSHDATA->m_colour = *wxBLACK;
+    
     M_BRUSHDATA->m_stipple = stippleBitmap;
 
+    if (M_BRUSHDATA->m_stipple.GetMask())
+               M_BRUSHDATA->m_style = wxSTIPPLE_MASK_OPAQUE;
+       else
+               M_BRUSHDATA->m_style = wxSTIPPLE;
+
     if (wxTheBrushList) wxTheBrushList->AddBrush( this );
 }
 
@@ -91,12 +96,12 @@ wxBrush& wxBrush::operator = ( const wxBrush& brush )
     return *this;
 }
 
-bool wxBrush::operator == ( const wxBrush& brush )
+bool wxBrush::operator == ( const wxBrush& brush ) const
 {
     return m_refData == brush.m_refData;
 }
 
-bool wxBrush::operator != ( const wxBrush& brush )
+bool wxBrush::operator != ( const wxBrush& brush ) const
 {
     return m_refData != brush.m_refData;
 }
@@ -161,6 +166,14 @@ void wxBrush::SetStipple( const wxBitmap& stipple )
 {
     Unshare();
     M_BRUSHDATA->m_stipple = stipple;
+    if (M_BRUSHDATA->m_stipple.GetMask())
+    {
+                  M_BRUSHDATA->m_style = wxSTIPPLE_MASK_OPAQUE;
+        }
+        else
+        {              
+                  M_BRUSHDATA->m_style = wxSTIPPLE;
+        }              
 }
 
 void wxBrush::Unshare()