]> git.saurik.com Git - wxWidgets.git/commitdiff
Improved SetScrollbars fix using client size and max of window and virtual
authorJulian Smart <julian@anthemion.co.uk>
Fri, 27 Dec 2002 14:17:55 +0000 (14:17 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Fri, 27 Dec 2002 14:17:55 +0000 (14:17 +0000)
sizes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/generic/scrlwing.cpp

index efe09689d2a3304e00f242aa99e2d5de5f938cd7..4da24ea3119bdfc16297c1dd0e27e83445c28fc9 100644 (file)
@@ -340,18 +340,18 @@ void wxScrollHelper::SetScrollbars(int pixelsPerUnitX,
     m_xScrollPosition = xPos;
     m_yScrollPosition = yPos;
 
-    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;
-    
     // For better backward compatibility we set persisting limits
     // here not just the size.  It makes SetScrollbars 'sticky'
     // emulating the old non-autoscroll behaviour.
 
+    wxSize sz = m_targetWindow->GetClientSize();
+#if 1
+    int x = wxMax(noUnitsX * pixelsPerUnitX, sz.x);
+    int y = wxMax(noUnitsY * pixelsPerUnitY, sz.y);
+#else
+    int x = noUnitsX * pixelsPerUnitX;
+    int y = noUnitsY * pixelsPerUnitY;
+#endif    
     m_targetWindow->SetVirtualSizeHints( x, y );
 
     // The above should arguably be deprecated, this however we still need.