applied the workaround for XUnionRectWithRegion() returning ampty result if the rect is empty to wxX11 and wxMotif as well

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@17046 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2002-09-07 17:21:26 +00:00
parent c6707d16fe
commit 9afe6c1750
2 changed files with 16 additions and 1 deletions

View File

@ -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();

View File

@ -149,6 +149,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;