]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed repainting of windows without the wxFULL_REPAINT_ON_RESIZE style under wxMSW...
authorVáclav Slavík <vslavik@fastmail.fm>
Fri, 27 Oct 2006 12:21:51 +0000 (12:21 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Fri, 27 Oct 2006 12:21:51 +0000 (12:21 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42518 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/univ/winuniv.cpp

index b1147291741290a84d9bd63baed89c1995c4ce25..0044439b981f4d635894dda217a5856d1c4cb5ae 100644 (file)
@@ -124,20 +124,27 @@ bool wxWindow::Create(wxWindow *parent,
 {
     long actualStyle = style;
 
-    // FIXME: may need this on other platforms
+    // we add wxCLIP_CHILDREN to get the same ("natural") behaviour under MSW
+    // as under the other platforms
+    actualStyle |= wxCLIP_CHILDREN;
+
 #ifdef __WXMSW__
+    // FIXME: may need this on other platforms
     actualStyle &= ~wxVSCROLL;
     actualStyle &= ~wxHSCROLL;
+
+    // without this, borders (non-client areas in general) are not repainted
+    // correctly when resizing; apparently, native NC areas are fully repainted
+    // even without this style by MSW, but wxUniv implements client area
+    // itself, so it doesn't work correctly for us
+    //
+    // FIXME: this is very expensive, we need to fix the (commented-out) code
+    //        in OnSize() instead
+    actualStyle |= wxFULL_REPAINT_ON_RESIZE;
 #endif
 
-    // we add wxCLIP_CHILDREN to get the same ("natural") behaviour under MSW
-    // as under the other platforms
-    if ( !wxWindowNative::Create(parent, id, pos, size,
-                                 actualStyle | wxCLIP_CHILDREN,
-                                 name) )
-    {
+    if ( !wxWindowNative::Create(parent, id, pos, size, actualStyle, name) )
         return false;
-    }
 
     // Set full style again, including those we didn't want present
     // when calling the base window Create().