diff --git a/src/msw/notebook.cpp b/src/msw/notebook.cpp index aaa4c35864..a7001ddbf9 100644 --- a/src/msw/notebook.cpp +++ b/src/msw/notebook.cpp @@ -704,9 +704,27 @@ wxColour wxNotebookGetThemeBackgroundColour(wxNotebook* notebook) m_pfnGetThemeColor(hTheme, 10 /* TABP_BODY */, 1 /* NORMAL */, - 3802 /* color of bg fill */, - & themeColor); - + 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()->m_pfnGetThemeColor(hTheme, + 10 /* TABP_BODY */, + 1 /* NORMAL */, + 3802 /* FILLCOLOR */, + &themeColor); + } + wxUxThemeEngine::Get()->m_pfnCloseThemeData(hTheme); wxColour colour(GetRValue(themeColor), GetGValue(themeColor), GetBValue(themeColor));