X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3ccf6cd7ea228a58ac43989760651796ec8d8600..77e0239d76ac5f2dbe9ba53e3278184ce83868ed:/src/motif/region.cpp diff --git a/src/motif/region.cpp b/src/motif/region.cpp index f9e7e47413..6417ac967e 100644 --- a/src/motif/region.cpp +++ b/src/motif/region.cpp @@ -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(); @@ -462,8 +471,7 @@ void wxRegionIterator::Reset(const wxRegion& region) m_numRects = count; m_rects = new wxRect[m_numRects]; - int i = 0; - for (i = 0; i < m_numRects; i++) + for (size_t i = 0; i < m_numRects; i++) m_rects[i] = rects[i]; /*