Be more conservative in avoiding Cairo's maximum coordinate limit.

Fixes wxGCDC::Clear().
See #17584
This commit is contained in:
Paul Cornett
2016-07-08 22:57:27 -07:00
parent c08b8c6f6d
commit fa54e1af15

View File

@@ -1151,9 +1151,10 @@ void wxGCDCImpl::Clear(void)
wxCompositionMode formerMode = m_graphicContext->GetCompositionMode(); wxCompositionMode formerMode = m_graphicContext->GetCompositionMode();
m_graphicContext->SetCompositionMode(wxCOMPOSITION_SOURCE); m_graphicContext->SetCompositionMode(wxCOMPOSITION_SOURCE);
// maximum positive coordinate Cairo can handle is 2^23 - 1 // maximum positive coordinate Cairo can handle is 2^23 - 1
// Use a value slightly less than this to be sure we avoid the limit
DoDrawRectangle( DoDrawRectangle(
DeviceToLogicalX(0), DeviceToLogicalY(0), DeviceToLogicalX(0), DeviceToLogicalY(0),
DeviceToLogicalXRel(0x007fffff), DeviceToLogicalYRel(0x007fffff)); DeviceToLogicalXRel(0x800000 - 64), DeviceToLogicalYRel(0x800000 - 64));
m_graphicContext->SetCompositionMode(formerMode); m_graphicContext->SetCompositionMode(formerMode);
m_graphicContext->SetPen( m_pen ); m_graphicContext->SetPen( m_pen );
m_graphicContext->SetBrush( m_brush ); m_graphicContext->SetBrush( m_brush );