]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/region.cpp
Initialised m_isBeingDeleted -- I don't know how anything
[wxWidgets.git] / src / motif / region.cpp
index fb3b1e3db2551e6b427f0bdc01a79689adca70bf..6417ac967ef9839f6fbf6cc993aa6a0e8fa26314 100644 (file)
@@ -1,10 +1,10 @@
 /////////////////////////////////////////////////////////////////////////////
 // File:      region.cpp
 // Purpose:   Region class
-// Author:    Markus Holzem/Julian Smart
+// Author:    Julian Smart
 // Created:   Fri Oct 24 10:46:34 MET 1997
-// RCS-ID:      $Id$
-// Copyright: (c) 1997 Markus Holzem/Julian Smart
+// RCS-ID:    $Id$
+// Copyright: (c) 1997 Julian Smart
 // Licence:   wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -82,10 +82,10 @@ public:
 void wxRegionRefData::SetRects(const wxRectList& rectList)
 {
     DeleteRects();
-    m_usingRects = (rectList.Number() > 0);
+    m_usingRects = (rectList.GetCount() > 0);
     if (m_usingRects)
     {
-      m_rectCount = rectList.Number();
+      m_rectCount = rectList.GetCount();
       m_rects = new wxRect[m_rectCount];
     }
 
@@ -200,8 +200,17 @@ void wxRegion::Clear()
 }
 
 //! Combine rectangle (x, y, w, h) with this.
-bool wxRegion::Combine(wxCoord x, wxCoord y, wxCoord width, wxCoord height, wxRegionOp op)
+bool
+wxRegion::Combine(wxCoord x, wxCoord y,
+                  wxCoord width, wxCoord height,
+                  wxRegionOp op)
 {
+    // work around for XUnionRectWithRegion() bug: taking a union with an empty
+    // rect results in an empty region (at least XFree 3.3.6 and 4.0 have this
+    // problem)
+    if ( op == wxRGN_OR && (!width || !height) )
+        return TRUE;
+
     // Don't change shared data
     if (!m_refData) {
         m_refData = new wxRegionRefData();