Restrict scrolled window virtual area in non-scrollable direction
If a wxScrolledWindow is only scrollable in one direction, its virtual size should only extend beyond the actual size of the window in this direction, as any contents not fitting the window wouldn't be visible anyhow.
This commit is contained in:
parent
20466d045f
commit
180fb2f35b
@ -767,8 +767,18 @@ bool wxScrollHelperBase::ScrollLayout()
|
|||||||
// If we're the scroll target, take into account the
|
// If we're the scroll target, take into account the
|
||||||
// virtual size and scrolled position of the window.
|
// virtual size and scrolled position of the window.
|
||||||
|
|
||||||
|
wxSize size = m_win->GetVirtualSize();
|
||||||
|
|
||||||
|
// However we should use the real window size in the direction in which
|
||||||
|
// scrolling is disabled, if any.
|
||||||
|
const wxSize clientSize = m_win->GetClientSize();
|
||||||
|
if ( !IsScrollbarShown(wxHORIZONTAL) )
|
||||||
|
size.x = clientSize.x;
|
||||||
|
if ( !IsScrollbarShown(wxVERTICAL) )
|
||||||
|
size.y = clientSize.y;
|
||||||
|
|
||||||
m_win->GetSizer()->SetDimension(CalcScrolledPosition(wxPoint(0, 0)),
|
m_win->GetSizer()->SetDimension(CalcScrolledPosition(wxPoint(0, 0)),
|
||||||
m_win->GetVirtualSize());
|
size);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user