From 278e99f8494e0c394d109c9da5960ff34d8fdb83 Mon Sep 17 00:00:00 2001 From: Brandon Aaron Date: Wed, 13 Nov 2013 12:32:29 -0500 Subject: [PATCH] Attempt to better handle multiple devices that give a different lowestDelta value --- jquery.mousewheel.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/jquery.mousewheel.js b/jquery.mousewheel.js index c26748dd2..0e93aaa8c 100755 --- a/jquery.mousewheel.js +++ b/jquery.mousewheel.js @@ -23,7 +23,7 @@ toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'], slice = Array.prototype.slice, - lowestDelta; + nullLowestDeltaTimeout, lowestDelta; if ( $.event.fixHooks ) { for ( var i = toFix.length; i; ) { @@ -116,7 +116,18 @@ // Add event and delta to the front of the arguments args.unshift(event, delta, deltaX, deltaY); + // Clearout lowestDelta after sometime to better + // handle multiple device types that give different + // a different lowestDelta + // Ex: trackpad = 3 and mouse wheel = 120 + if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); } + nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200); + return ($.event.dispatch || $.event.handle).apply(this, args); } + function nullLowestDelta() { + lowestDelta = null; + } + }));