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:
@@ -200,8 +200,17 @@ void wxRegion::Clear()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//! Combine rectangle (x, y, w, h) with this.
|
//! 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
|
// Don't change shared data
|
||||||
if (!m_refData) {
|
if (!m_refData) {
|
||||||
m_refData = new wxRegionRefData();
|
m_refData = new wxRegionRefData();
|
||||||
|
@@ -149,6 +149,12 @@ void wxRegion::Clear()
|
|||||||
|
|
||||||
bool wxRegion::Union( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
|
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;
|
XRectangle rect;
|
||||||
rect.x = x;
|
rect.x = x;
|
||||||
rect.y = y;
|
rect.y = y;
|
||||||
|
Reference in New Issue
Block a user