From cc373d2b309821db351216ecaf16d63446a61a61 Mon Sep 17 00:00:00 2001 From: Mark Sanders Date: Fri, 12 Jul 2019 14:15:47 +0200 Subject: [PATCH] Fix relative scrolling when dragging the ScrollBar with the mouse. --- src/ui/ScrollBar.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ui/ScrollBar.cpp b/src/ui/ScrollBar.cpp index d38ae9a0..93d63479 100644 --- a/src/ui/ScrollBar.cpp +++ b/src/ui/ScrollBar.cpp @@ -30,14 +30,13 @@ void ScrollBar::onDragStart(const event::DragStart &e) { } void ScrollBar::onDragMove(const event::DragMove &e) { - const float sensitivity = 1.f; - ScrollWidget *scrollWidget = dynamic_cast(parent); assert(scrollWidget); + math::Rect containerBox = scrollWidget->container->getChildrenBoundingBox(); if (orientation == HORIZONTAL) - scrollWidget->offset.x += sensitivity * e.mouseDelta.x; + scrollWidget->offset.x += (containerBox.size.x / box.size.x) * e.mouseDelta.x; else - scrollWidget->offset.y += sensitivity * e.mouseDelta.y; + scrollWidget->offset.y += (containerBox.size.y / box.size.y) * e.mouseDelta.y; } void ScrollBar::onDragEnd(const event::DragEnd &e) {