X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/644231539d2ccf9ef873060154079f33ba7a42db..ec52467188b876c4f21f2528d99730827a27b76e:/src/x11/region.cpp?ds=sidebyside diff --git a/src/x11/region.cpp b/src/x11/region.cpp index 1f7f4d5929..babe1dcca1 100644 --- a/src/x11/region.cpp +++ b/src/x11/region.cpp @@ -1,17 +1,13 @@ ///////////////////////////////////////////////////////////////////////////// // File: region.cpp // Purpose: Region class -// Author: Markus Holzem, Julian Smart, Robert Roebling +// Author: Julian Smart, Robert Roebling // Created: Fri Oct 24 10:46:34 MET 1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997 Markus Holzem, Julian Smart, Robert Roebling +// RCS-ID: $Id$ +// Copyright: (c) 1997 Julian Smart, Robert Roebling // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "region.h" -#endif - #include "wx/region.h" #include "wx/gdicmn.h" #include "wx/log.h" @@ -127,7 +123,7 @@ wxObjectRefData *wxRegion::CloneRefData(const wxObjectRefData *data) const // wxRegion comparison // ---------------------------------------------------------------------------- -bool wxRegion::operator==( const wxRegion& region ) +bool wxRegion::operator==( const wxRegion& region ) const { if (m_refData == region.m_refData) return TRUE; @@ -149,6 +145,12 @@ void wxRegion::Clear() bool wxRegion::Union( wxCoord x, wxCoord y, wxCoord width, wxCoord height ) { + // 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 ( !width || !height ) + return TRUE; + XRectangle rect; rect.x = x; rect.y = y;