]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/notebook.cpp
Fix setting the fonts for wxMSW wxTextCtrl with wxTE_RICH(2) style.
[wxWidgets.git] / src / msw / notebook.cpp
index 7148d34139424790a81ead54c004b9eb769824d6..333a22bfc94cfc3c4e1d73f7d133603ad33adc24 100644 (file)
@@ -30,6 +30,7 @@
     #include "wx/dcclient.h"
     #include "wx/dcmemory.h"
     #include "wx/control.h"
+    #include "wx/panel.h"
 #endif  // WX_PRECOMP
 
 #include "wx/imaglist.h"
@@ -818,6 +819,14 @@ bool wxNotebook::InsertPage(size_t nPage,
     // succeeded: save the pointer to the page
     m_pages.Insert(pPage, nPage);
 
+    // also ensure that the notebook background is used for its pages by making
+    // them transparent: this ensures that MSWGetBgBrush() queries the notebook
+    // for the background brush to be used for erasing them
+    if ( wxPanel *panel = wxDynamicCast(pPage, wxPanel) )
+    {
+        panel->MSWSetTransparentBackground();
+    }
+
     // we may need to adjust the size again if the notebook size changed:
     // normally this only happens for the first page we add (the tabs which
     // hadn't been there before are now shown) but for a multiline notebook it
@@ -1252,23 +1261,7 @@ void wxNotebook::UpdateBgBrush()
 
 WXHBRUSH wxNotebook::MSWGetBgBrushForChild(WXHDC hDC, wxWindow *child)
 {
-    // Only apply to notebook pages and transparent children, see
-    // wxWindow::MSWGetBgBrushForChild() for explanation
-    bool shouldApply;
-    if ( child->GetParent() == this )
-    {
-        // notebook page -- apply background
-        shouldApply = true;
-    }
-    else
-    {
-        // controls in a notebook page with transparent background should
-        // be handled too
-        shouldApply = child->HasTransparentBackground() &&
-                      child->GetParent()->GetParent() == this;
-    }
-
-    if ( m_hbrBackground && shouldApply )
+    if ( m_hbrBackground )
     {
         // before drawing with the background brush, we need to position it
         // correctly