]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/window.cpp
#include "wx/settings.h" wxSystemSettings is needed by non-OSX code.
[wxWidgets.git] / src / mac / carbon / window.cpp
index 06d75e461139b50163649fe4a33a65a48ea9ef0f..8d5f618255fe14bdafed9aa74cb3bd8b13f04816 100644 (file)
@@ -810,8 +810,6 @@ bool wxWindowMac::Create(wxWindowMac *parent, wxWindowID id,
     if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) )
         return FALSE;
 
-    parent->AddChild(this);
-
     m_windowVariant = parent->GetWindowVariant() ;
 
     if ( m_macIsUserPane )
@@ -865,6 +863,7 @@ void wxWindowMac::MacPostControlCreate(const wxPoint& pos, const wxSize& size)
     wxASSERT_MSG( m_peer != NULL && m_peer->Ok() , wxT("No valid mac control") ) ;
 
     m_peer->SetReference( (long) this ) ;
+    GetParent()->AddChild(this);
 
     MacInstallEventHandler( (WXWidget) m_peer->GetControlRef() );
 
@@ -1869,11 +1868,14 @@ bool wxWindowMac::Show(bool show)
         return FALSE;
 
     // TODO use visibilityChanged Carbon Event for OSX
-    bool former = MacIsReallyShown() ;
+    if ( m_peer )
+    {
+        bool former = MacIsReallyShown() ;
 
-    m_peer->SetVisibility( show , true ) ;
-    if ( former != MacIsReallyShown() )
-        MacPropagateVisibilityChanged() ;
+        m_peer->SetVisibility( show , true ) ;
+        if ( former != MacIsReallyShown() )
+            MacPropagateVisibilityChanged() ;
+    }
     return TRUE;
 }