]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/sizer.cpp
Version of [ 1177956 ] fix for wxString::operator=(wxChar *) for STL builds
[wxWidgets.git] / src / common / sizer.cpp
index f959eb34b253b0f989988b73228f85701cb56826..36c63f9e109bb3c043b53ffbfc2a1f25f097926a 100644 (file)
@@ -388,7 +388,14 @@ void wxSizerItem::DeleteWindows()
             break;
 
         case Item_Window:
+            //We are deleting the window from this sizer - normally
+            //the window destroys the sizer associated with it,
+            //which might destroy this, which we don't want
+            m_window->SetContainingSizer(NULL);
             m_window->Destroy();
+            //Putting this after the switch will result in a spacer
+            //not being deleted properly on destruction
+            m_kind = Item_None; 
             break;
 
         case Item_Sizer:
@@ -400,7 +407,6 @@ void wxSizerItem::DeleteWindows()
             wxFAIL_MSG( _T("unexpected wxSizerItem::m_kind") );
     }
 
-    m_kind = Item_None;
 }
 
 void wxSizerItem::Show( bool show )
@@ -416,7 +422,7 @@ void wxSizerItem::Show( bool show )
             break;
 
         case Item_Sizer:
-            m_sizer->ShowItems(show);
+            m_sizer->Show(show);
             break;
 
         case Item_Spacer: