diff --git a/Basalt/objects/MovableFrame.lua b/Basalt/objects/MovableFrame.lua index df38b43..e77acd9 100644 --- a/Basalt/objects/MovableFrame.lua +++ b/Basalt/objects/MovableFrame.lua @@ -50,13 +50,10 @@ return function(name, basalt) dragHandler = function(self, btn, x, y) if(base.dragHandler(self, btn, x, y))then if (isDragging) then - local xO, yO = parent:getOffset() - xO = xO < 0 and math.abs(xO) or -xO - yO = yO < 0 and math.abs(yO) or -yO local parentX = 1 local parentY = 1 parentX, parentY = parent:getAbsolutePosition() - self:setPosition(x + dragXOffset - (parentX - 1) + xO, y + dragYOffset - (parentY - 1) + yO) + self:setPosition(x + dragXOffset - (parentX - 1), y + dragYOffset - (parentY - 1)) self:updateDraw() end return true diff --git a/Basalt/objects/Object.lua b/Basalt/objects/Object.lua index a0d1529..4dc3e00 100644 --- a/Basalt/objects/Object.lua +++ b/Basalt/objects/Object.lua @@ -146,6 +146,10 @@ return function(name, basalt) registerEvent = function(self, event, func) if(parent~=nil)then parent:addEvent(event, self) + if(event=="mouse_drag")then + parent:addEvent("mouse_click", self) + parent:addEvent("mouse_up", self) + end end eventSystem:registerEvent(event, func) if (registeredEvents[event] == nil) then diff --git a/Basalt/objects/ScrollableFrame.lua b/Basalt/objects/ScrollableFrame.lua index 29e063c..bdec82e 100644 --- a/Basalt/objects/ScrollableFrame.lua +++ b/Basalt/objects/ScrollableFrame.lua @@ -96,6 +96,7 @@ return function(name, basalt) load = function(self) base.load(self) self:listenEvent("mouse_scroll") + self:listenEvent("mouse_drag") end, removeChildren = function(self) @@ -121,12 +122,12 @@ return function(name, basalt) if(obj.element.getIgnoreOffset())then xO, yO = 0, 0 end - if (obj.element.scrollHandler(obj.element, dir, x+xO, y+yO)) then + if (obj.element.scrollHandler(obj.element, dir, x+xO, y+yO)) then return true end end end - scrollHandler(self, dir, x, y) + scrollHandler(self, dir) self:clearFocusedChild() return true end