From 239502350a5d90eb545c76ea48933310a88d91fe Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Mon, 23 Dec 2002 23:42:13 +0000 Subject: [PATCH] Don't pass zero width or height to SetVirtualSize or layout is messed up. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/scrlwing.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/generic/scrlwing.cpp b/src/generic/scrlwing.cpp index f65fb4b487..720b4f2ec4 100644 --- a/src/generic/scrlwing.cpp +++ b/src/generic/scrlwing.cpp @@ -344,11 +344,18 @@ void wxScrollHelper::SetScrollbars(int pixelsPerUnitX, // here not just the size. It makes SetScrollbars 'sticky' // emulating the old non-autoscroll behaviour. - m_targetWindow->SetVirtualSizeHints( noUnitsX * pixelsPerUnitX, noUnitsY * pixelsPerUnitY ); + wxSize sz = m_targetWindow->GetSize(); + int x = noUnitsX * pixelsPerUnitX; + int y = noUnitsY * pixelsPerUnitY; + if (x == 0) + x = sz.x; + if (y == 0) + y = sz.y; + m_targetWindow->SetVirtualSizeHints( x, y ); // The above should arguably be deprecated, this however we still need. - m_targetWindow->SetVirtualSize( noUnitsX * pixelsPerUnitX, noUnitsY * pixelsPerUnitY ); + m_targetWindow->SetVirtualSize( x, y ); if (do_refresh && !noRefresh) m_targetWindow->Refresh(TRUE, GetRect());