diff --git a/modules/corelib/ui/uiscrollarea.lua b/modules/corelib/ui/uiscrollarea.lua index f5be74e1..b15125ca 100644 --- a/modules/corelib/ui/uiscrollarea.lua +++ b/modules/corelib/ui/uiscrollarea.lua @@ -111,8 +111,15 @@ function UIScrollArea:onMouseWheel(mousePos, mouseWheel) return false end if mouseWheel == MouseWheelUp then + if self.verticalScrollBar:getValue() < 1 then + return false + end self.verticalScrollBar:decrement() else + local maximum = self.verticalScrollBar:getMaximum() + if self.verticalScrollBar:getValue() >= maximum then + return false + end self.verticalScrollBar:increment() end elseif self.horizontalScrollBar then @@ -120,8 +127,15 @@ function UIScrollArea:onMouseWheel(mousePos, mouseWheel) return false end if mouseWheel == MouseWheelUp then + local maximum = self.horizontalScrollBar:getMaximum() + if self.horizontalScrollBar:getValue() >= maximum then + return false + end self.horizontalScrollBar:increment() else + if self.horizontalScrollBar:getValue() < 1 then + return false + end self.horizontalScrollBar:decrement() end end diff --git a/modules/corelib/ui/uiscrollbar.lua b/modules/corelib/ui/uiscrollbar.lua index 236ec95c..67695b7e 100644 --- a/modules/corelib/ui/uiscrollbar.lua +++ b/modules/corelib/ui/uiscrollbar.lua @@ -234,19 +234,23 @@ function UIScrollBar:onGeometryChange() end function UIScrollBar:onMouseWheel(mousePos, mouseWheel) - if not self.mouseScroll then + if not self.mouseScroll or not self:isOn() then return false end if mouseWheel == MouseWheelUp then if self.orientation == 'vertical' then + if self.value < 1 then return false end self:decrement() else + if self.value >= self.maximum then return false end self:increment() end else if self.orientation == 'vertical' then + if self.value >= self.maximum then return false end self:increment() else + if self.value < 1 then return false end self:decrement() end end