X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3d2b9c202d215ec220a7b2d62b28768ec7f40e44..efbb7287e6be8cfa29cb30a9678a3a3e6e99bfb3:/src/generic/scrolwin.cpp diff --git a/src/generic/scrolwin.cpp b/src/generic/scrolwin.cpp index 17facb6ea2..1c28693778 100644 --- a/src/generic/scrolwin.cpp +++ b/src/generic/scrolwin.cpp @@ -129,16 +129,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; @@ -317,6 +321,7 @@ int wxScrolledWindow::CalcScrollInc(wxScrollWinEvent& event) break; } case wxEVT_SCROLLWIN_THUMBTRACK: + case wxEVT_SCROLLWIN_THUMBRELEASE: { if (orient == wxHORIZONTAL) nScrollInc = pos - m_xScrollPosition;