don't call size_request to get best size of a non-native control, it will probably return (0,0)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57326 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2008-12-14 07:39:17 +00:00
parent 5ddfa0748f
commit 50bedb7b44

View File

@@ -60,13 +60,18 @@ wxSize wxControl::DoGetBestSize() const
// Do not return any arbitrary default value... // Do not return any arbitrary default value...
wxASSERT_MSG( m_widget, wxT("DoGetBestSize called before creation") ); wxASSERT_MSG( m_widget, wxT("DoGetBestSize called before creation") );
GtkRequisition req; wxSize best;
req.width = 2; if (m_wxwindow)
req.height = 2; {
(* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_widget) )->size_request ) // this is not a native control, size_request is likely to be (0,0)
(m_widget, &req ); best = wxControlBase::DoGetBestSize();
}
wxSize best(req.width, req.height); else
{
GtkRequisition req;
GTK_WIDGET_GET_CLASS(m_widget)->size_request(m_widget, &req);
best.Set(req.width, req.height);
}
CacheBestSize(best); CacheBestSize(best);
return best; return best;
} }