diff --git a/src/common/dcgraph.cpp b/src/common/dcgraph.cpp index 66a531bb47..9206732e71 100644 --- a/src/common/dcgraph.cpp +++ b/src/common/dcgraph.cpp @@ -57,8 +57,10 @@ static bool TranslateRasterOp(wxRasterOperationMode function, wxCompositionMode { switch ( function ) { - case wxCOPY: // (default) src - *op = wxCOMPOSITION_SOURCE; // + case wxCOPY: // src + // since we are supporting alpha, _OVER is closer to the intention than _SOURCE + // since the latter would overwrite even when alpha is is not set to opaque + *op = wxCOMPOSITION_OVER; break; case wxOR: // src OR dst *op = wxCOMPOSITION_ADD; @@ -1047,7 +1049,10 @@ void wxGCDCImpl::Clear(void) m_graphicContext->SetBrush( m_backgroundBrush ); wxPen p = *wxTRANSPARENT_PEN; m_graphicContext->SetPen( p ); + wxCompositionMode formerMode = m_graphicContext->GetCompositionMode(); + m_graphicContext->SetCompositionMode(wxCOMPOSITION_SOURCE); DoDrawRectangle( 0, 0, 32000 , 32000 ); + m_graphicContext->SetCompositionMode(formerMode); m_graphicContext->SetPen( m_pen ); m_graphicContext->SetBrush( m_brush ); }