X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a2327a9f80fa3240ab652da8f95a66b5c25576de..2035e10e83324c6925d12725b842768f6e2b00a2:/src/msw/frame.cpp diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index d698638b4f..4e528223ee 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -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); } } }