]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/window.cpp
document On{Open,Save}Document()
[wxWidgets.git] / src / msw / window.cpp
index 87a4f1260194833b6bf777a9ac4f9f57103fcf58..53d7313f3690078be08bafdb735fb79a74145b7e 100644 (file)
@@ -716,6 +716,16 @@ bool wxWindowMSW::Show(bool show)
         ::ShowWindow(hWnd, show ? SW_SHOW : SW_HIDE);
     }
 
         ::ShowWindow(hWnd, show ? SW_SHOW : SW_HIDE);
     }
 
+    if ( IsFrozen() )
+    {
+        // DoFreeze/DoThaw don't do anything if the window is not shown, so
+        // we have to call them from here now
+        if ( show )
+            DoFreeze();
+        else
+            DoThaw();
+    }
+
     return true;
 }
 
     return true;
 }
 
@@ -1615,20 +1625,22 @@ static inline void SendSetRedraw(HWND hwnd, bool on)
 
 void wxWindowMSW::DoFreeze()
 {
 
 void wxWindowMSW::DoFreeze()
 {
-    if ( IsShown() )
-        SendSetRedraw(GetHwnd(), false);
+    if ( !IsShown() )
+        return; // no point in freezing hidden window
+
+    SendSetRedraw(GetHwnd(), false);
 }
 
 void wxWindowMSW::DoThaw()
 {
 }
 
 void wxWindowMSW::DoThaw()
 {
-    if ( IsShown() )
-    {
-        SendSetRedraw(GetHwnd(), true);
+    if ( !IsShown() )
+        return; // hidden windows aren't frozen by DoFreeze
 
 
-        // we need to refresh everything or otherwise the invalidated area
-        // is not going to be repainted
-        Refresh();
-    }
+    SendSetRedraw(GetHwnd(), true);
+
+    // we need to refresh everything or otherwise the invalidated area
+    // is not going to be repainted
+    Refresh();
 }
 
 void wxWindowMSW::Refresh(bool eraseBack, const wxRect *rect)
 }
 
 void wxWindowMSW::Refresh(bool eraseBack, const wxRect *rect)