]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/frame.cpp
Found bug that skrewed up display wrt horizontal
[wxWidgets.git] / src / msw / frame.cpp
index d698638b4f485072ab55e3e651769322e950a2b0..4e528223ee52d02ea40f6384739fd7e0f0e635b9 100644 (file)
@@ -37,6 +37,7 @@
     #include "wx/dialog.h"
     #include "wx/settings.h"
     #include "wx/dcclient.h"
+    #include "wx/mdi.h"
 #endif // WX_PRECOMP
 
 #include "wx/msw/private.h"
@@ -392,29 +393,14 @@ void wxFrame::PositionStatusBar()
     if ( !m_frameStatusBar )
         return;
 
-    // native status bar positions itself, but we must forward the WM_SIZE
-    // messages to it
-#if wxUSE_NATIVE_STATUSBAR
-    wxStatusBar95 *sb = wxDynamicCast(m_frameStatusBar, wxStatusBar95);
-    if ( sb )
-    {
-        wxSizeEvent event(GetSize(), sb->GetId());
-        event.SetEventObject(sb);
+    int w, h;
+    GetClientSize(&w, &h);
+    int sw, sh;
+    m_frameStatusBar->GetSize(&sw, &sh);
 
-        sb->GetEventHandler()->ProcessEvent(event);
-    }
-    else
-#endif // wxUSE_NATIVE_STATUSBAR
-    {
-        int w, h;
-        GetClientSize(&w, &h);
-        int sw, sh;
-        m_frameStatusBar->GetSize(&sw, &sh);
-
-        // Since we wish the status bar to be directly under the client area,
-        // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS.
-        m_frameStatusBar->SetSize(0, h, w, sh);
-    }
+    // Since we wish the status bar to be directly under the client area,
+    // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS.
+    m_frameStatusBar->SetSize(0, h, w, sh);
 }
 #endif // wxUSE_STATUSBAR
 
@@ -665,7 +651,7 @@ bool wxFrame::MSWCreate(int id, wxWindow *parent, const wxChar *wclass, wxWindow
 
   // Keep this in wxFrame because it saves recoding this function
   // in wxTinyFrame
-#if wxUSE_ITSY_BITSY
+#if wxUSE_ITSY_BITSY && !defined(__WIN32__)
   if (style & wxTINY_CAPTION_VERT)
     msflags |= IBS_VERTCAPTION;
   if (style & wxTINY_CAPTION_HORIZ)
@@ -805,9 +791,12 @@ void wxFrame::IconizeChildFrames(bool bIconize)
     {
         wxWindow *win = node->GetData();
 
-        if ( win->IsKindOf(CLASSINFO(wxFrame)) )
+        // the child MDI frames are a special case and should not be touched by
+        // the parent frame - instead, they are managed by the user
+        wxFrame *frame = wxDynamicCast(win, wxFrame);
+        if ( frame && !wxDynamicCast(frame, wxMDIChildFrame) )
         {
-            ((wxFrame *)win)->Iconize(bIconize);
+            frame->Iconize(bIconize);
         }
     }
 }