]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/sizer.cpp
Update version to 2.9.4 in version.bkl too and rebake everything.
[wxWidgets.git] / src / common / sizer.cpp
index 783bfe1b3907970ec8e26fcb3a705a7d14c13061..f964661d2e52530adb157b11b9fa5fba5591f52f 100644 (file)
@@ -840,6 +840,10 @@ bool wxSizer::Replace( size_t old, wxSizerItem *newitem )
 
     wxSizerItem *item = node->GetData();
     node->SetData(newitem);
+
+    if (item->IsWindow() && item->GetWindow())
+        item->GetWindow()->SetContainingSizer(NULL);
+
     delete item;
 
     return true;
@@ -905,6 +909,11 @@ wxSize wxSizer::ComputeFittingClientSize(wxWindow *window)
 
         sizeMax = wxDisplay(disp).GetClientArea().GetSize();
 
+        // If determining the display size failed, skip the max size checks as
+        // we really don't want to create windows of (0, 0) size.
+        if ( !sizeMax.x || !sizeMax.y )
+            return size;
+
         // space for decorations and toolbars etc.
         sizeMax = tlw->WindowToClientSize(sizeMax);
     }
@@ -1931,7 +1940,7 @@ void wxFlexGridSizer::AddGrowableRow( size_t idx, int proportion )
     // common) case when the number of rows was not specified in the ctor -- in
     // this case it will be computed only later, when all items are added to
     // the sizer, and the check will be done in AdjustForGrowables()
-    // wxCHECK_RET( !m_rows || idx < (size_t)m_rows, "invalid row index" );
+    wxCHECK_RET( !m_rows || idx < (size_t)m_rows, "invalid row index" );
 
     m_growableRows.Add( idx );
     m_growableRowsProportions.Add( proportion );
@@ -1944,7 +1953,7 @@ void wxFlexGridSizer::AddGrowableCol( size_t idx, int proportion )
 
     // see comment in AddGrowableRow(): although it's less common to omit the
     // specification of the number of columns, it still can also happen
-    // wxCHECK_RET( !m_cols || idx < (size_t)m_cols, "invalid column index" );
+    wxCHECK_RET( !m_cols || idx < (size_t)m_cols, "invalid column index" );
 
     m_growableCols.Add( idx );
     m_growableColsProportions.Add( proportion );
@@ -2089,7 +2098,7 @@ void wxBoxSizer::RecalcSizes()
 
     // Check for the degenerated case when we don't have enough space for even
     // the min sizes of all the items: in this case we really can't do much
-    // more than to to allocate the min size to as many of fixed size items as
+    // more than to allocate the min size to as many of fixed size items as
     // possible (on the assumption that variable size items such as text zones
     // or list boxes may use scrollbars to show their content even if their
     // size is less than min size but that fixed size items such as buttons
@@ -2393,6 +2402,9 @@ void wxStaticBoxSizer::RecalcSizes()
         // in the wxBoxSizer::RecalcSizes() call below using coordinates relative
         // to the top-left corner of the staticbox:
         m_position.x = m_position.y = 0;
+#elif defined(__WXOSX__) && wxOSX_USE_COCOA
+        // the distance from the 'inner' content view to the embedded controls
+        m_position.x = m_position.y = 10;
 #else
         // if the wxStaticBox has childrens, then these windows must be placed
         // by the wxBoxSizer::RecalcSizes() call below using coordinates relative