undo r58380 as it breaks tree control background repainting (see #9832)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-01-25 19:07:11 +00:00
parent da58c4e6a0
commit d57f1dd7fe
2 changed files with 8 additions and 12 deletions

View File

@@ -734,10 +734,6 @@ bool wxTreeCtrl::Create(wxWindow *parent,
if ( !MSWCreateControl(WC_TREEVIEW, wstyle, pos, size) ) if ( !MSWCreateControl(WC_TREEVIEW, wstyle, pos, size) )
return false; return false;
// this significantly reduces flicker when refreshing the control, for some
// reason the native control itself doesn't avoid background repainting
SetBackgroundStyle(wxBG_STYLE_CUSTOM);
#if wxUSE_COMCTL32_SAFELY #if wxUSE_COMCTL32_SAFELY
wxWindow::SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); wxWindow::SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
wxWindow::SetForegroundColour(wxWindow::GetParent()->GetForegroundColour()); wxWindow::SetForegroundColour(wxWindow::GetParent()->GetForegroundColour());

View File

@@ -4722,14 +4722,6 @@ bool wxWindowMSW::HandleEraseBkgnd(WXHDC hdc)
void wxWindowMSW::OnEraseBackground(wxEraseEvent& event) void wxWindowMSW::OnEraseBackground(wxEraseEvent& event)
{ {
if ( GetBackgroundStyle() == wxBG_STYLE_CUSTOM )
{
// don't skip the event here, custom background means that the app
// is drawing it itself in its OnPaint(), so don't draw it at all
// now to avoid flicker
return;
}
// standard non top level controls (i.e. except the dialogs) always erase // standard non top level controls (i.e. except the dialogs) always erase
// their background themselves in HandleCtlColor() or have some control- // their background themselves in HandleCtlColor() or have some control-
// specific ways to set the colours (common controls) // specific ways to set the colours (common controls)
@@ -4739,6 +4731,14 @@ void wxWindowMSW::OnEraseBackground(wxEraseEvent& event)
return; return;
} }
if ( GetBackgroundStyle() == wxBG_STYLE_CUSTOM )
{
// don't skip the event here, custom background means that the app
// is drawing it itself in its OnPaint(), so don't draw it at all
// now to avoid flicker
return;
}
wxDC *dc = event.GetDC(); wxDC *dc = event.GetDC();
if (!dc) return; if (!dc) return;
wxMSWDCImpl *impl = (wxMSWDCImpl*) dc->GetImpl(); wxMSWDCImpl *impl = (wxMSWDCImpl*) dc->GetImpl();