Skip to content

Instantly share code, notes, and snippets.

@KOBA789
Created July 13, 2018 15:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KOBA789/34c01fb1a443584a9f98b39efd22ca45 to your computer and use it in GitHub Desktop.
Save KOBA789/34c01fb1a443584a9f98b39efd22ca45 to your computer and use it in GitHub Desktop.
-- HANDLE SCROLLING
local deferred = false
overrideMiddleMouseDown = hs.eventtap.new({ hs.eventtap.event.types.otherMouseDown }, function(e)
--print("down"))
deferred = true
return true
end)
overrideMiddleMouseUp = hs.eventtap.new({ hs.eventtap.event.types.otherMouseUp }, function(e)
-- print("up"))
if (deferred) then
overrideMiddleMouseDown:stop()
overrideMiddleMouseUp:stop()
hs.eventtap.middleClick(e:location())
overrideMiddleMouseDown:start()
overrideMiddleMouseUp:start()
return true
end
return false
end)
local oldmousepos = {}
local beta = -20
dragMiddleToScroll = hs.eventtap.new({ hs.eventtap.event.types.otherMouseDragged }, function(e)
-- print("scroll");
deferred = false
oldmousepos = hs.mouse.getAbsolutePosition()
local dx = e:getProperty(hs.eventtap.event.properties['mouseEventDeltaX'])
local dy = e:getProperty(hs.eventtap.event.properties['mouseEventDeltaY'])
local scroll = hs.eventtap.event.newScrollEvent({dx * beta, dy * beta},{},'pixel')
-- put the mouse back
hs.mouse.setAbsolutePosition(oldmousepos)
return true, {scroll}
end)
overrideMiddleMouseDown:start()
overrideMiddleMouseUp:start()
dragMiddleToScroll:start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment