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