// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "mdi.h"
-#endif
-
#include "wx/wxprec.h"
#if wxUSE_MDI
-#include "wx/mdi.h"
-#include "wx/menu.h"
-#include "wx/settings.h"
-#include "wx/log.h"
+#ifndef WX_PRECOMP
+ #include "wx/mdi.h"
+ #include "wx/log.h"
+ #include "wx/menu.h"
+ #include "wx/settings.h"
+ #include "wx/statusbr.h"
+#endif
#include "wx/mac/private.h"
#include "wx/mac/uma.h"
{
m_currentChild = wxDynamicCast(child, wxMDIChildFrame);
- if ( m_currentChild && IsShown() && ShouldBeVisible() )
+ if ( m_currentChild && IsShown() && !ShouldBeVisible() )
{
+ // we shouldn't remain visible any more
+ wxFrame::Show(false);
+ m_shouldBeShown = true;
}
}
node;
node = node->GetNext() )
{
- if ( !wxDynamicCast(node->GetData(), wxMDIChildFrame)
+ wxWindow *win = node->GetData();
+
+ if ( win->IsShown()
+ && !wxDynamicCast(win, wxMDIChildFrame)
#if wxUSE_STATUSBAR
- && node->GetData() != GetStatusBar()
+ && win != GetStatusBar()
#endif // wxUSE_STATUSBAR
- && node->GetData() != GetClientWindow() )
+ && win != GetClientWindow() )
{
// if we have a non-MDI child, do remain visible so that it could
// be used