]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/notebook.cpp
Added UpdateSize to wxSplitterWindow, to allow an app
[wxWidgets.git] / src / msw / notebook.cpp
index e04027b7dad546df6269007a9e6ffe1bf34765db..e4cfd4c2a0b5c92b70e1da33b1d831ce29cf40d1 100644 (file)
@@ -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();