// Name: src/generic/vscroll.cpp
// Purpose: wxVScrolledWindow implementation
// Author: Vadim Zeitlin
-// Modified by: Brad Anderson
+// Modified by: Brad Anderson, David Warkentin
// Created: 30.05.03
// RCS-ID: $Id$
// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
m_win =
m_targetWindow = (wxWindow *)NULL;
+ m_physicalScrolling = true;
m_handler = NULL;
m_win = win;
// finally refresh the display -- but only redraw as few units as possible
// to avoid flicker. We can't do this if we have children because they
// won't be scrolled
- if ( m_targetWindow->GetChildren().empty() &&
- GetVisibleBegin() >= unitLastOld || GetVisibleEnd() <= unitFirstOld )
+ if ( (m_targetWindow->GetChildren().empty() &&
+ GetVisibleBegin() >= unitLastOld) || GetVisibleEnd() <= unitFirstOld )
{
// the simplest case: we don't have any old units left, just redraw
// everything
}
else // scroll the window
{
+ // Avoid scrolling visible parts of the screen on Mac
+#ifdef __WXMAC__
+ if (m_physicalScrolling && m_targetWindow->IsShownOnScreen())
+#else
if ( m_physicalScrolling )
+#endif
{
wxCoord dx = 0,
dy = GetUnitsSize(GetVisibleBegin(), unitFirstOld);
return -1;
}
-void wxVarVScrollLegacyAdaptor::OnGetLinesHint( size_t WXUNUSED(lineMin), size_t WXUNUSED(lineMax)) const
-{ }
+void wxVarVScrollLegacyAdaptor::OnGetLinesHint(size_t WXUNUSED(lineMin),
+ size_t WXUNUSED(lineMax)) const
+{
+}
-#endif
+wxCoord wxVarVScrollLegacyAdaptor::OnGetRowHeight(size_t n) const
+{
+ return OnGetLineHeight(n);
+}
+
+void wxVarVScrollLegacyAdaptor::OnGetRowsHeightHint(size_t rowMin,
+ size_t rowMax) const
+{
+ OnGetLinesHint(rowMin, rowMax);
+}
+
+#endif // WXWIN_COMPATIBILITY_2_8