From adf499e8bd8b041747beaae52ec72b1ba4fed908 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 22 Nov 2002 21:37:10 +0000 Subject: [PATCH] fixed SetBestSize() by restoring its old behaviour (undid 1.94.2.1 change and added comments about why the actual code is right) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/window.h | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/include/wx/window.h b/include/wx/window.h index 8b960ba1f1..1b12bc2884 100644 --- a/include/wx/window.h +++ b/include/wx/window.h @@ -988,16 +988,21 @@ protected: // smarter SetSize / convenience function for expanding wxDefaultSize. // Note that it does not influence the value returned by GetBestSize // at all. - // - // FIXME: Can't we just make this the behaviour of SetSize when - // wxSIZE_AUTO_* is in play and do away with this (undocumented) - // method altogether? - void SetBestSize(const wxSize& size) { - wxSize best( DoGetBestSize() ); + // the size only needs to be changed if the current size is incomplete, + // i.e. one of the components was specified as default -- so if both + // were given, simply don't do anything + if ( size.x == -1 || size.y == -1 ) + { + wxSize sizeBest = DoGetBestSize(); + if ( size.x != -1 ) + sizeBest.x = size.x; + if ( size.y != -1 ) + sizeBest.y = size.y; - SetSize( wxMax( size.x, best.x ), wxMax( size.y, best.y ) ); + SetSize(sizeBest); + } } // more pure virtual functions