{
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;
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 );
}