]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/scrlwing.cpp
Support for new native OS/2 tree control with drag-and-drop.
[wxWidgets.git] / src / generic / scrlwing.cpp
index efe09689d2a3304e00f242aa99e2d5de5f938cd7..f516a8552dcb6536b470c19d139aef5987bb8554 100644 (file)
@@ -82,6 +82,8 @@ private:
     wxScrollHelper *m_scrollHelper;
 
     bool m_hasDrawnWindow;
+
+    DECLARE_NO_COPY_CLASS(wxScrollHelperEvtHandler)
 };
 
 // ----------------------------------------------------------------------------
@@ -104,6 +106,8 @@ private:
     wxEventType m_eventType;
     int m_pos,
         m_orient;
+
+    DECLARE_NO_COPY_CLASS(wxAutoScrollTimer)
 };
 
 // ============================================================================
@@ -340,18 +344,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.
@@ -952,7 +956,7 @@ void wxScrollHelper::HandleOnChar(wxKeyEvent& event)
         yScrollOld = m_yScrollPosition;
 
     int dsty;
-    switch ( event.KeyCode() )
+    switch ( event.GetKeyCode() )
     {
         case WXK_PAGEUP:
         case WXK_PRIOR: