]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix inheriting parent background colour in wxPanel in wxMSW.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 9 Oct 2011 22:01:57 +0000 (22:01 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 9 Oct 2011 22:01:57 +0000 (22:01 +0000)
wxPanel didn't inherit the background colour set for its parent any more in
wxMSW because its HasTransparentBackground() didn't return true unless the
panel was a child of wxNotebook. This was wrong because not only themed
notebook background should be inherited but also any solid background
explicitly set for a panel parent.

Fix this by returning true from MSWHasInheritableBackground(), which is used
by wxPanel::HasTransparentBackground() under MSW, if the window has an
explicitly set and inheritable background colour.

Closes #13487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/window.h

index 95a9d722060f5e81061f61c2daa8592baea30d91..6526461c31b178f6099f099c032f0be43607cb44 100644 (file)
@@ -467,7 +467,13 @@ public:
     // This should be overridden to return true for the controls which have
     // themed background that should through their children. Currently only
     // wxNotebook uses this.
-    virtual bool MSWHasInheritableBackground() const { return false; }
+    //
+    // The base class version already returns true if we have a solid
+    // background colour that should be propagated to our children.
+    virtual bool MSWHasInheritableBackground() const
+    {
+        return InheritsBackgroundColour();
+    }
 
 #if !defined(__WXWINCE__) && !defined(__WXUNIVERSAL__)
     #define wxHAS_MSW_BACKGROUND_ERASE_HOOK