]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/scrolwin.cpp
Added WIN16 code for window disabler
[wxWidgets.git] / src / generic / scrolwin.cpp
index 74b4d6bbd26ef07283ae0f4f3a2ed39348e45c08..ada5b1c236d09daa983c6379ccc0974f75055ece 100644 (file)
@@ -85,6 +85,7 @@ wxScrolledWindow::wxScrolledWindow()
     m_yScrollLinesPerPage = 0;
     m_scaleX = 1.0;
     m_scaleY = 1.0;
+    m_targetWindow = (wxWindow*) NULL;
 }
 
 bool wxScrolledWindow::Create(wxWindow *parent,
@@ -129,16 +130,20 @@ void wxScrolledWindow::SetScrollbars (int pixelsPerUnitX, int pixelsPerUnitY,
                int noUnitsX, int noUnitsY,
                int xPos, int yPos, bool noRefresh )
 {
+    int xpos, ypos;
+
+    CalcUnscrolledPosition(xPos, yPos, &xpos, &ypos);
     bool do_refresh =
     (
       (noUnitsX != 0 && m_xScrollLines == 0) ||
-      (noUnitsX < m_xScrollLines) ||
+      (noUnitsX < m_xScrollLines && xpos > pixelsPerUnitX*noUnitsX) || 
+
       (noUnitsY != 0 && m_yScrollLines == 0) ||
-      (noUnitsY < m_yScrollLines) ||
+      (noUnitsY < m_yScrollLines && ypos > pixelsPerUnitY*noUnitsY) ||
       (xPos != m_xScrollPosition) ||
-      (yPos != m_yScrollPosition) ||
-      (pixelsPerUnitX != m_xScrollPixelsPerLine) ||
-      (pixelsPerUnitY != m_yScrollPixelsPerLine)
+      (yPos != m_yScrollPosition)
+//       (pixelsPerUnitX != m_xScrollPixelsPerLine) ||
+//       (pixelsPerUnitY != m_yScrollPixelsPerLine)
     );
 
     m_xScrollPixelsPerLine = pixelsPerUnitX;
@@ -499,6 +504,9 @@ void wxScrolledWindow::SetScrollPageSize(int orient, int pageSize)
  */
 void wxScrolledWindow::Scroll( int x_pos, int y_pos )
 {
+    if (!m_targetWindow)
+        return;
+
     if (((x_pos == -1) || (x_pos == m_xScrollPosition)) &&
         ((y_pos == -1) || (y_pos == m_yScrollPosition))) return;