diff --git a/include/wx/msw/notebook.h b/include/wx/msw/notebook.h index e2c2d31915..12bf1ac87a 100644 --- a/include/wx/msw/notebook.h +++ b/include/wx/msw/notebook.h @@ -122,17 +122,9 @@ public: // implementation only // ------------------- + virtual bool SetBackgroundColour(const wxColour& colour) wxOVERRIDE; + #if wxUSE_UXTHEME - virtual bool SetBackgroundColour(const wxColour& colour) wxOVERRIDE - { - if ( !wxNotebookBase::SetBackgroundColour(colour) ) - return false; - - UpdateBgBrush(); - - return true; - } - // draw child background virtual bool MSWPrintChild(WXHDC hDC, wxWindow *win) wxOVERRIDE; diff --git a/src/msw/notebook.cpp b/src/msw/notebook.cpp index 18308bc6aa..f91161c93e 100644 --- a/src/msw/notebook.cpp +++ b/src/msw/notebook.cpp @@ -109,11 +109,6 @@ static bool HasTroubleWithNonTopTabs() wxBEGIN_EVENT_TABLE(wxNotebook, wxBookCtrlBase) EVT_SIZE(wxNotebook::OnSize) EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) - -#if USE_NOTEBOOK_ANTIFLICKER - EVT_ERASE_BACKGROUND(wxNotebook::OnEraseBackground) - EVT_PAINT(wxNotebook::OnPaint) -#endif // USE_NOTEBOOK_ANTIFLICKER wxEND_EVENT_TABLE() // ============================================================================ @@ -1081,6 +1076,28 @@ void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) } } +bool wxNotebook::SetBackgroundColour(const wxColour& colour) +{ + if ( !wxNotebookBase::SetBackgroundColour(colour) ) + return false; + +#if wxUSE_UXTHEME + UpdateBgBrush(); +#endif // wxUSE_UXTHEME + +#if USE_NOTEBOOK_ANTIFLICKER + Unbind(wxEVT_ERASE_BACKGROUND, &wxNotebook::OnEraseBackground, this); + Unbind(wxEVT_PAINT, &wxNotebook::OnPaint, this); + if ( m_hasBgCol || !wxUxThemeIsActive() ) + { + Bind(wxEVT_ERASE_BACKGROUND, &wxNotebook::OnEraseBackground, this); + Bind(wxEVT_PAINT, &wxNotebook::OnPaint, this); + } +#endif // USE_NOTEBOOK_ANTIFLICKER + + return true; +} + #if wxUSE_UXTHEME WXHBRUSH wxNotebook::QueryBgBitmap()