Make wxSizer::SetSizeHints() work again
This function was broken when it was called for a window which was not
the window the sizer was associated with since the recent (pre-3.1.5)
changes trying to work around the problem with the initial windows size
when using GTK 3, see 9c0a8be1dc
(Merge branch 'gtk-initial-size',
2021-04-13).
Fix it by passing the sizer to use for calculating the size explicitly
to WXSetInitialFittingClientSize() when we have it, and only falling
back on the window's own sizer if we don't.
Closes #19170.
This commit is contained in:
@@ -1079,7 +1079,7 @@ wxSize wxSizer::Fit( wxWindow *window )
|
||||
wxCHECK_MSG( window, wxDefaultSize, "window can't be NULL" );
|
||||
|
||||
// set client size
|
||||
window->WXSetInitialFittingClientSize(wxSIZE_SET_CURRENT);
|
||||
window->WXSetInitialFittingClientSize(wxSIZE_SET_CURRENT, this);
|
||||
|
||||
// return entire size
|
||||
return window->GetSize();
|
||||
@@ -1119,7 +1119,8 @@ void wxSizer::SetSizeHints( wxWindow *window )
|
||||
{
|
||||
// Preserve the window's max size hints, but set the
|
||||
// lower bound according to the sizer calculations.
|
||||
window->WXSetInitialFittingClientSize(wxSIZE_SET_CURRENT | wxSIZE_SET_MIN);
|
||||
window->WXSetInitialFittingClientSize(wxSIZE_SET_CURRENT | wxSIZE_SET_MIN,
|
||||
this);
|
||||
}
|
||||
|
||||
#if WXWIN_COMPATIBILITY_2_8
|
||||
|
Reference in New Issue
Block a user