From 352fd000eaae16e79b5d9f4ca6081e778d9ec4e8 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 9 Jan 2011 15:36:02 +0000 Subject: (svn r21760) -Fix (r20452): Restore wheeling of vertical scrollbars. --- src/window.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/window.cpp') diff --git a/src/window.cpp b/src/window.cpp index 4dca8403a..568b1814b 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -442,7 +442,7 @@ static void DispatchHoverEvent(Window *w, int x, int y) * @param nwid the widget where the scrollwheel was used * @param wheel scroll up or down */ -static void DispatchMouseWheelEvent(Window *w, const NWidgetCore *nwid, int wheel) +static void DispatchMouseWheelEvent(Window *w, NWidgetCore *nwid, int wheel) { if (nwid == NULL) return; @@ -452,6 +452,16 @@ static void DispatchMouseWheelEvent(Window *w, const NWidgetCore *nwid, int whee return; } + /* Wheeling a vertical scrollbar. */ + if (nwid->type == NWID_VSCROLLBAR) { + NWidgetScrollbar *sb = static_cast(nwid); + if (sb->GetCount() > sb->GetCapacity()) { + sb->UpdatePosition(wheel); + w->SetDirty(); + } + return; + } + /* Scroll the widget attached to the scrollbar. */ Scrollbar *sb = (nwid->scrollbar_index >= 0 ? w->GetScrollbar(nwid->scrollbar_index) : NULL); if (sb != NULL && sb->GetCount() > sb->GetCapacity()) { -- cgit v1.2.3-54-g00ecf