// do nothing here
}
-void wxHtmlWindow::OnEraseBackground(wxEraseEvent& WXUNUSED(event))
+void wxHtmlWindow::OnEraseBackground(wxEraseEvent& event)
{
+ // we do have to erase background now that we reuse it (instead of
+ // overwriting it) in OnPaint() below, but maybe we should set some flag if
+ // we get here as this would mean that user code doesn't paint background
+ // itself and then we wouldn't have to copy old bits to dcm below...
+ event.Skip();
}
void wxHtmlWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
if ( !m_backBuffer )
m_backBuffer = new wxBitmap(sz.x, sz.y);
dcm.SelectObject(*m_backBuffer);
- dcm.SetBackground(wxBrush(GetBackgroundColour(), wxSOLID));
- dcm.Clear();
PrepareDC(dcm);
+
+ // preserve the existing background, otherwise we'd erase anything the user
+ // code had drawn in its EVT_ERASE_BACKGROUND handler when we do the Blit
+ // back below
+ dcm.Blit(0, rect.GetTop(),
+ sz.x, rect.GetBottom() - rect.GetTop() + 1,
+ &dc,
+ 0, rect.GetTop());
+
dcm.SetMapMode(wxMM_TEXT);
dcm.SetBackgroundMode(wxTRANSPARENT);