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) {