X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/093475d2675caf0fd178bb93fd79fc5c529801e9..095b80e2b5120d4c476a834b2017c355fa9afef0:/src/common/sizer.cpp diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp index c2320a4d5a..7123f19c6a 100644 --- a/src/common/sizer.cpp +++ b/src/common/sizer.cpp @@ -199,9 +199,12 @@ wxSize wxSizerItem::CalcMin() // should use the current minimal size. If there is a MinSize, // use it, otherwise use the BestSize. wxSize min = m_window->GetMinSize(); - wxSize best = m_window->GetBestSize(); - if (min.x == -1) min.x = best.x; - if (min.y == -1) min.y = best.y; + if (min.x == -1 || min.y == -1) + { + wxSize best = m_window->GetBestSize(); + if (min.x == -1) min.x = best.x; + if (min.y == -1) min.y = best.y; + } m_minSize = min; } @@ -1053,20 +1056,20 @@ void wxGridSizer::SetItemBounds( wxSizerItem *item, int x, int y, int w, int h ) { if (flag & wxALIGN_CENTER_HORIZONTAL) { - pt.x = x + (w - sz.x) / 2; + pt.x = x + (w - sz.x - m_hgap) / 2; } else if (flag & wxALIGN_RIGHT) { - pt.x = x + (w - sz.x); + pt.x = x + (w - sz.x - m_hgap); } if (flag & wxALIGN_CENTER_VERTICAL) { - pt.y = y + (h - sz.y) / 2; + pt.y = y + (h - sz.y - m_vgap) / 2; } else if (flag & wxALIGN_BOTTOM) { - pt.y = y + (h - sz.y); + pt.y = y + (h - sz.y - m_vgap); } }