]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/toplevel.cpp
cleanup - reformatting; simplified OnPaint
[wxWidgets.git] / src / msw / toplevel.cpp
index f5689a3aab48f4b81bbf260ded68dd3ad63064ff..e861e661ef9bba116c5516bfb1c352673ec6515f 100644 (file)
@@ -705,17 +705,21 @@ void wxTopLevelWindowMSW::Maximize(bool maximize)
     }
     else // hidden
     {
-        // we can't maximize the hidden frame because it shows it as well, so
-        // just remember that we should do it later in this case
+        // we can't maximize the hidden frame because it shows it as well,
+        // so just remember that we should do it later in this case
         m_maximizeOnShow = maximize;
 
         // after calling Maximize() the client code expects to get the frame
         // "real" size and doesn't want to know that, because of implementation
         // details, the frame isn't really maximized yet but will be only once
         // it's shown, so return our size as it will be then in this case
-
-        // we don't know which display we're on yet so use the default one
-        SetSize(wxGetClientDisplayRect().GetSize());
+        if ( maximize )
+        {
+            // unfortunately we don't know which display we're on yet so we
+            // have to use the default one
+            SetSize(wxGetClientDisplayRect().GetSize());
+        }
+        //else: can't do anything in this case, we don't have the old size
     }
 }
 
@@ -738,10 +742,11 @@ bool wxTopLevelWindowMSW::IsIconized() const
 #ifdef __WXWINCE__
     return false;
 #else
-    // also update the current state
-    ((wxTopLevelWindowMSW *)this)->m_iconized = ::IsIconic(GetHwnd()) != 0;
-
-    return m_iconized;
+    // don't use m_iconized, it may be briefly out of sync with the real state
+    // as it's only modified when we receive a WM_SIZE and we could be called
+    // from an event handler from one of the messages we receive before it,
+    // such as WM_MOVE
+    return ::IsIconic(GetHwnd()) != 0;
 #endif
 }