X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6fb603d7458a2df50d11e9afa85d61e3bdb36eb6..38c58c778d8f8b0abf889e787e0364d42c1c445f:/src/msw/window.cpp diff --git a/src/msw/window.cpp b/src/msw/window.cpp index f5a6693112..70f74831c8 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -332,8 +332,8 @@ wxCONSTRUCTOR_DUMMY(wxWindow) #endif // __WXUNIVERSAL__/__WXMSW__ BEGIN_EVENT_TABLE(wxWindowMSW, wxWindowBase) - EVT_ERASE_BACKGROUND(wxWindowMSW::OnEraseBackground) EVT_SYS_COLOUR_CHANGED(wxWindowMSW::OnSysColourChanged) + EVT_ERASE_BACKGROUND(wxWindowMSW::OnEraseBackground) #ifdef __WXWINCE__ EVT_INIT_DIALOG(wxWindowMSW::OnInitDialog) #endif @@ -4050,29 +4050,6 @@ bool wxWindowMSW::HandleEraseBkgnd(WXHDC hdc) if ( ::IsIconic(GetHwnd()) ) return true; -#if 0 - if (GetParent() && GetParent()->GetExtraStyle() & wxWS_EX_THEMED_BACKGROUND) - { - return false; - } - - if (GetExtraStyle() & wxWS_EX_THEMED_BACKGROUND) - { - if (wxUxThemeEngine::Get()) - { - WXHTHEME hTheme = wxUxThemeEngine::Get()->m_pfnOpenThemeData(GetHWND(), L"TAB"); - if (hTheme) - { - WXURECT rect; - ::GetClientRect((HWND) GetHWND(), (RECT*) & rect); - wxUxThemeEngine::Get()->m_pfnDrawThemeBackground(hTheme, hdc, 10 /* TABP_BODY */, 0, &rect, &rect); - wxUxThemeEngine::Get()->m_pfnCloseThemeData(hTheme); - return true; - } - } - } -#endif - wxDCTemp dc(hdc); dc.SetHDC(hdc); @@ -4093,10 +4070,24 @@ bool wxWindowMSW::HandleEraseBkgnd(WXHDC hdc) 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() + return; + } + + if ( !m_hasBgCol ) + { + event.Skip(); + return; + } + + // we have a fixed solid background colour, do use it RECT rect; ::GetClientRect(GetHwnd(), &rect); - wxColour backgroundColour( GetBackgroundColour()); + wxColour backgroundColour(GetBackgroundColour()); COLORREF ref = PALETTERGB(backgroundColour.Red(), backgroundColour.Green(), backgroundColour.Blue());