]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/scrolwin.cpp
Applied patch [ 874495 ] wxMSW: Flat buttons
[wxWidgets.git] / src / gtk / scrolwin.cpp
index 9a792a679e2fb89d106b26b8f73502b3e41dc66f..8a302f507b96a69e6bc7938ba801ae15b6379d9c 100644 (file)
@@ -5,8 +5,8 @@
 // Modified by: Ron Lee
 // Created:     01/02/97
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:     wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "scrolwin.h"
 #endif
 
@@ -340,8 +340,11 @@ void wxScrolledWindow::SetScrollbars( int pixelsPerUnitX, int pixelsPerUnitY,
                                       int noUnitsX, int noUnitsY,
                                       int xPos, int yPos, bool noRefresh )
 {
-    int old_x = m_xScrollPixelsPerLine * m_xScrollPosition;
-    int old_y = m_yScrollPixelsPerLine * m_yScrollPosition;
+    int xs, ys;
+    GetViewStart (& xs, & ys);
+    
+    int old_x = m_xScrollPixelsPerLine * xs;
+    int old_y = m_yScrollPixelsPerLine * ys;
 
     m_xScrollPixelsPerLine = pixelsPerUnitX;
     m_yScrollPixelsPerLine = pixelsPerUnitY;
@@ -439,7 +442,7 @@ void wxScrolledWindow::SetTargetWindow( wxWindow *target, bool WXUNUSED(pushEven
     m_targetWindow = target;
 }
 
-wxWindow *wxScrolledWindow::GetTargetWindow()
+wxWindow *wxScrolledWindow::GetTargetWindow() const
 {
     return m_targetWindow;
 }
@@ -638,18 +641,24 @@ void wxScrolledWindow::GetViewStart (int *x, int *y) const
 
 void wxScrolledWindow::DoCalcScrolledPosition(int x, int y, int *xx, int *yy) const
 {
+    int xs, ys;
+    GetViewStart (& xs, & ys);
+    
     if ( xx )
-        *xx = x - m_xScrollPosition * m_xScrollPixelsPerLine;
+        *xx = x - xs * m_xScrollPixelsPerLine;
     if ( yy )
-        *yy = y - m_yScrollPosition * m_yScrollPixelsPerLine;
+        *yy = y - ys * m_yScrollPixelsPerLine;
 }
 
 void wxScrolledWindow::DoCalcUnscrolledPosition(int x, int y, int *xx, int *yy) const
 {
+    int xs, ys;
+    GetViewStart (& xs, & ys);
+    
     if ( xx )
-        *xx = x + m_xScrollPosition * m_xScrollPixelsPerLine;
+        *xx = x + xs * m_xScrollPixelsPerLine;
     if ( yy )
-        *yy = y + m_yScrollPosition * m_yScrollPixelsPerLine;
+        *yy = y + ys * m_yScrollPixelsPerLine;
 }
 
 int wxScrolledWindow::CalcScrollInc(wxScrollWinEvent& event)