X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bd507486e07b742bb7acb118811efd60ee027859..7e521b01c32d4f98de9f6b7624968ee4cdaada93:/src/msw/notebook.cpp diff --git a/src/msw/notebook.cpp b/src/msw/notebook.cpp index e04027b7da..e4cfd4c2a0 100644 --- a/src/msw/notebook.cpp +++ b/src/msw/notebook.cpp @@ -946,9 +946,28 @@ wxColour wxNotebook::GetThemeBackgroundColour() hTheme, 10 /* TABP_BODY */, 1 /* NORMAL */, - 3802 /* color of bg fill */, + 3821 /* FILLCOLORHINT */, &themeColor); - + + /* + [DS] Workaround for WindowBlinds: + Some themes return a near black theme color using FILLCOLORHINT, + this makes notebook pages have an ugly black background and makes + text (usually black) unreadable. Retry again with FILLCOLOR. + + This workaround potentially breaks appearance of some themes, + but in practice it already fixes some themes. + */ + if (themeColor == 1) + { + wxUxThemeEngine::Get()->GetThemeColor( + hTheme, + 10 /* TABP_BODY */, + 1 /* NORMAL */, + 3802 /* FILLCOLOR */, + &themeColor); + } + wxColour colour(GetRValue(themeColor), GetGValue(themeColor), GetBValue(themeColor)); return colour; } @@ -966,19 +985,9 @@ void wxNotebook::ApplyThemeBackground(wxWindow*, const wxColour&) #endif { #if wxUSE_UXTHEME - // Special case for wxButton: Don't set the background for buttons since - // this will switch it into ownerdraw mode - if (window->IsKindOf(CLASSINFO(wxButton)) && !window->IsKindOf(CLASSINFO(wxBitmapButton))) - // This is essential, otherwise you'll see dark grey - // corners in the buttons. - ((wxButton*)window)->wxControl::SetBackgroundColour(colour); - - // for all other classes let them decide - else if ((window != this) && window->CanApplyParentThemeBackground()) - { - window->SetBackgroundColour(colour); - } + window->ApplyParentThemeBackground(colour); + for ( wxWindowList::compatibility_iterator node = window->GetChildren().GetFirst(); node; node = node->GetNext() ) { wxWindow *child = node->GetData();