From e12b9422580c898af381ba97fa9806bfe3264e96 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 14 Nov 2014 08:40:03 +0000 Subject: Smooth scroll; partial fix to race condition. --- content_scripts/scroller.coffee | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/content_scripts/scroller.coffee b/content_scripts/scroller.coffee index a1f5bfa1..ecb739ec 100644 --- a/content_scripts/scroller.coffee +++ b/content_scripts/scroller.coffee @@ -89,13 +89,18 @@ doScrollBy = do -> time = 0 lastEvent = null keyHandler = null + keyIsDown = false (element, direction, amount) -> return unless amount keyHandler ?= handlerStack.push - keydown: -> lastEvent = event - keyup: -> time += 1 + keydown: -> + keyIsDown = true unless event.repeat + lastEvent = event + keyup: -> + keyIsDown = false + time += 1 unless settings.get "smoothScroll" # Jump scrolling. @@ -109,7 +114,7 @@ doScrollBy = do -> activationTime = ++time isKeyStillDown = -> - time == activationTime + time == activationTime and keyIsDown # Store amount's sign and make amount positive; the logic is clearer when amount is positive. sign = Math.sign amount -- cgit v1.2.3