#undef WXDEBUG_SCROLLBAR
#endif // !__WXDEBUG__
+#if defined(WXDEBUG_SCROLLBAR) && defined(__WXMSW__) && !defined(__WXMICROWIN__)
+#include "wx/msw/private.h"
+#endif
+
// ----------------------------------------------------------------------------
// wxScrollBarTimer: this class is used to repeatedly scroll the scrollbar
// when the mouse is help pressed on the arrow or on the bar. It generates the
// ----------------------------------------------------------------------------
void wxScrollBar::OnIdle(wxIdleEvent& event)
+{
+ UpdateThumb();
+ event.Skip();
+}
+
+void wxScrollBar::UpdateThumb()
{
if ( m_dirty )
{
m_dirty = FALSE;
}
-
- event.Skip();
}
void wxScrollBar::DoDraw(wxControlRenderer *renderer)
{
DoSetThumb(numArg);
+ // VS: we have to force redraw here, otherwise the thumb will lack
+ // behind mouse cursor
+ UpdateThumb();
+
scrollType = wxEVT_SCROLLWIN_THUMBTRACK;
}
else if ( action == wxACTION_SCROLL_LINE_UP )
case WXK_LEFT: action = wxACTION_SCROLL_LINE_UP; break;
case WXK_HOME: action = wxACTION_SCROLL_START; break;
case WXK_END: action = wxACTION_SCROLL_END; break;
+ case WXK_PAGEUP:
case WXK_PRIOR: action = wxACTION_SCROLL_PAGE_UP; break;
+ case WXK_PAGEDOWN:
case WXK_NEXT: action = wxACTION_SCROLL_PAGE_DOWN; break;
}