]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/statbr95.cpp
GetSpacer returns a copy, not a reference to the size
[wxWidgets.git] / src / msw / statbr95.cpp
index 21dd058290ab7a0aa5833c8e1c6c17fc566b2456..c17ff4cc5744291e70b89437143cf806a3e147c7 100644 (file)
   #pragma hdrstop
 #endif
 
-#ifndef WX_PRECOMP
-  #include "wx/setup.h"
-  #include "wx/frame.h"
-  #include "wx/settings.h"
-  #include "wx/dcclient.h"
-#endif
-
 #if wxUSE_STATUSBAR && wxUSE_NATIVE_STATUSBAR
 
-#include "wx/intl.h"
-#include "wx/log.h"
 #include "wx/statusbr.h"
 
+#ifndef WX_PRECOMP
+    #include "wx/msw/wrapcctl.h" // include <commctrl.h> "properly"
+    #include "wx/frame.h"
+    #include "wx/settings.h"
+    #include "wx/dcclient.h"
+    #include "wx/intl.h"
+    #include "wx/log.h"
+#endif
+
 #include "wx/msw/private.h"
 #include <windowsx.h>
 
-// include <commctrl.h> "properly"
-#include "wx/msw/wrapcctl.h"
-
 #if wxUSE_UXTHEME
     #include "wx/msw/uxtheme.h"
 #endif
@@ -293,10 +290,6 @@ bool wxStatusBar95::GetFieldRect(int i, wxRect& rect) const
     return true;
 }
 
-#ifndef SWP_NOSENDCHANGING
-#define SWP_NOSENDCHANGING 0
-#endif
-
 void wxStatusBar95::DoMoveWindow(int x, int y, int width, int height)
 {
     if ( GetParent()->IsSizeDeferred() )
@@ -307,8 +300,14 @@ void wxStatusBar95::DoMoveWindow(int x, int y, int width, int height)
     {
         // parent pos/size isn't deferred so do it now but don't send
         // WM_WINDOWPOSCHANGING since we don't want to change pos/size later
+        // we must use SWP_NOCOPYBITS here otherwise it paints incorrectly
+        // if other windows are size deferred
         ::SetWindowPos(GetHwnd(), NULL, x, y, width, height,
-                       SWP_NOZORDER | SWP_NOSENDCHANGING);
+                       SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE
+#ifndef __WXWINCE__
+                       | SWP_NOCOPYBITS | SWP_NOSENDCHANGING
+#endif
+                       );
     }
 
     // adjust fields widths to the new size