]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/statbox.cpp
Take src x, y into account when blitting with alpha
[wxWidgets.git] / src / msw / statbox.cpp
index 5631d9de41f506906439406e4c26213f930250e8..88e485e64b57e19ecc41ab01e546dedf816c041c 100644 (file)
@@ -40,6 +40,7 @@
 #include "wx/sysopt.h"
 #include "wx/image.h"
 #include "wx/dcmemory.h"
+#include "wx/sysopt.h"
 
 #include "wx/msw/private.h"
 #include "wx/msw/missing.h"
@@ -123,7 +124,8 @@ bool wxStaticBox::Create(wxWindow *parent,
         return false;
 
 #ifndef __WXWINCE__
-    Connect(wxEVT_PAINT, wxPaintEventHandler(wxStaticBox::OnPaint));
+    if (!wxSystemOptions::IsFalse(wxT("msw.staticbox.optimized-paint")))
+        Connect(wxEVT_PAINT, wxPaintEventHandler(wxStaticBox::OnPaint));
 #endif // !__WXWINCE__
 
     return true;
@@ -143,7 +145,12 @@ WXDWORD wxStaticBox::MSWGetStyle(long style, WXDWORD *exstyle) const
     styleWin &= ~WS_CLIPCHILDREN;
 
     if ( exstyle )
-        *exstyle = 0;
+    {
+        if (wxSystemOptions::IsFalse(wxT("msw.staticbox.optimized-paint")))
+            *exstyle = WS_EX_TRANSPARENT;
+        else
+            *exstyle = 0;
+    }
 
     return styleWin | BS_GROUPBOX;
 }
@@ -267,7 +274,7 @@ WXHRGN wxStaticBox::MSWGetRegionWithoutChildren()
         LONG style = ::GetWindowLong(child, GWL_STYLE);
         wxString str(wxGetWindowClass(child));
         str.UpperCase();
-        if ( str == wxT("BUTTON") && (style & BS_GROUPBOX) != 0 )
+        if ( str == wxT("BUTTON") && (style & BS_GROUPBOX) == BS_GROUPBOX )
         {
             // Don't clip any static boxes, not just this one.  This will
             // result in flicker in overlapping static boxes, but at least