From 93c18d1c420730c65da7c5b3167be00f51c5e06d Mon Sep 17 00:00:00 2001 From: summercms Date: Mon, 14 Jul 2025 18:22:59 +0100 Subject: [PATCH 1/4] Add support for passive event listeners --- src/jquery.mousewheel.js | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/jquery.mousewheel.js b/src/jquery.mousewheel.js index 5a7e1bd43..e3f723ba7 100644 --- a/src/jquery.mousewheel.js +++ b/src/jquery.mousewheel.js @@ -36,7 +36,21 @@ version: "@VERSION", setup: function() { - this.addEventListener( "wheel", handler, false ); + // Use passive event listeners if supported + var passiveSupported = false; + try { + var opts = Object.defineProperty({}, "passive", { + get: function() { + passiveSupported = true; + } + }); + window.addEventListener("test", null, opts); + } catch (e) {} + this.addEventListener( + "wheel", + handler, + passiveSupported ? { passive: true } : false + ); // Store the line height and page height for this particular element $.data( this, "mousewheel-line-height", special.getLineHeight( this ) ); @@ -44,7 +58,21 @@ }, teardown: function() { - this.removeEventListener( "wheel", handler, false ); + // Remove with same passive option as setup + var passiveSupported = false; + try { + var opts = Object.defineProperty({}, "passive", { + get: function() { + passiveSupported = true; + } + }); + window.addEventListener("test", null, opts); + } catch (e) {} + this.removeEventListener( + "wheel", + handler, + passiveSupported ? { passive: true } : false + ); // Clean up the data we added to the element $.removeData( this, "mousewheel-line-height" ); From a9e7a388cd45056e14229be5542166250a54cdea Mon Sep 17 00:00:00 2001 From: summercms Date: Mon, 14 Jul 2025 18:27:41 +0100 Subject: [PATCH 2/4] Correct indents --- src/jquery.mousewheel.js | 60 ++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/jquery.mousewheel.js b/src/jquery.mousewheel.js index e3f723ba7..75b9e44d5 100644 --- a/src/jquery.mousewheel.js +++ b/src/jquery.mousewheel.js @@ -36,21 +36,21 @@ version: "@VERSION", setup: function() { - // Use passive event listeners if supported - var passiveSupported = false; - try { - var opts = Object.defineProperty({}, "passive", { - get: function() { - passiveSupported = true; - } - }); - window.addEventListener("test", null, opts); - } catch (e) {} - this.addEventListener( - "wheel", - handler, - passiveSupported ? { passive: true } : false - ); + // Use passive event listeners if supported + var passiveSupported = false; + try { + var opts = Object.defineProperty({}, "passive", { + get: function() { + passiveSupported = true; + } + }); + window.addEventListener("test", null, opts); + } catch (e) {} + this.addEventListener( + "wheel", + handler, + passiveSupported ? { passive: true } : false + ); // Store the line height and page height for this particular element $.data( this, "mousewheel-line-height", special.getLineHeight( this ) ); @@ -58,21 +58,21 @@ }, teardown: function() { - // Remove with same passive option as setup - var passiveSupported = false; - try { - var opts = Object.defineProperty({}, "passive", { - get: function() { - passiveSupported = true; - } - }); - window.addEventListener("test", null, opts); - } catch (e) {} - this.removeEventListener( - "wheel", - handler, - passiveSupported ? { passive: true } : false - ); + // Remove with same passive option as setup + var passiveSupported = false; + try { + var opts = Object.defineProperty({}, "passive", { + get: function() { + passiveSupported = true; + } + }); + window.addEventListener("test", null, opts); + } catch (e) {} + this.removeEventListener( + "wheel", + handler, + passiveSupported ? { passive: true } : false + ); // Clean up the data we added to the element $.removeData( this, "mousewheel-line-height" ); From 35a8a94bf72e4a34b744e97bd263c157614924e7 Mon Sep 17 00:00:00 2001 From: summercms Date: Mon, 14 Jul 2025 18:28:47 +0100 Subject: [PATCH 3/4] Removed tab indents and replaced them with 4 spaces --- src/jquery.mousewheel.js | 346 +++++++++++++++++++-------------------- 1 file changed, 173 insertions(+), 173 deletions(-) diff --git a/src/jquery.mousewheel.js b/src/jquery.mousewheel.js index 75b9e44d5..393118861 100644 --- a/src/jquery.mousewheel.js +++ b/src/jquery.mousewheel.js @@ -7,183 +7,183 @@ * https://jquery.org/license */ ( function( factory ) { - "use strict"; + "use strict"; - if ( typeof define === "function" && define.amd ) { + if ( typeof define === "function" && define.amd ) { - // AMD. Register as an anonymous module. - define( [ "jquery" ], factory ); - } else if ( typeof exports === "object" ) { + // AMD. Register as an anonymous module. + define( [ "jquery" ], factory ); + } else if ( typeof exports === "object" ) { - // Node/CommonJS style for Browserify - module.exports = factory; - } else { + // Node/CommonJS style for Browserify + module.exports = factory; + } else { - // Browser globals - factory( jQuery ); - } + // Browser globals + factory( jQuery ); + } } )( function( $ ) { - "use strict"; - - var nullLowestDeltaTimeout, lowestDelta, - slice = Array.prototype.slice; - - if ( $.event.fixHooks ) { - $.event.fixHooks.wheel = $.event.mouseHooks; - } - - var special = $.event.special.mousewheel = { - version: "@VERSION", - - setup: function() { - // Use passive event listeners if supported - var passiveSupported = false; - try { - var opts = Object.defineProperty({}, "passive", { - get: function() { - passiveSupported = true; - } - }); - window.addEventListener("test", null, opts); - } catch (e) {} - this.addEventListener( - "wheel", - handler, - passiveSupported ? { passive: true } : false - ); - - // Store the line height and page height for this particular element - $.data( this, "mousewheel-line-height", special.getLineHeight( this ) ); - $.data( this, "mousewheel-page-height", special.getPageHeight( this ) ); - }, - - teardown: function() { - // Remove with same passive option as setup - var passiveSupported = false; - try { - var opts = Object.defineProperty({}, "passive", { - get: function() { - passiveSupported = true; - } - }); - window.addEventListener("test", null, opts); - } catch (e) {} - this.removeEventListener( - "wheel", - handler, - passiveSupported ? { passive: true } : false - ); - - // Clean up the data we added to the element - $.removeData( this, "mousewheel-line-height" ); - $.removeData( this, "mousewheel-page-height" ); - }, - - getLineHeight: function( elem ) { - var $elem = $( elem ), - $parent = $elem.offsetParent(); - if ( !$parent.length ) { - $parent = $( "body" ); - } - return parseInt( $parent.css( "fontSize" ), 10 ) || - parseInt( $elem.css( "fontSize" ), 10 ) || 16; - }, - - getPageHeight: function( elem ) { - return $( elem ).height(); - }, - - settings: { - normalizeOffset: true // calls getBoundingClientRect for each event - } - }; - - function handler( origEvent ) { - var args = slice.call( arguments, 1 ), - delta = 0, - deltaX = 0, - deltaY = 0, - absDelta = 0, - event = $.event.fix( origEvent ); - - event.type = "mousewheel"; - - // New school wheel delta (wheel event) - if ( "deltaY" in origEvent ) { - deltaY = origEvent.deltaY * -1; - delta = deltaY; - } - if ( "deltaX" in origEvent ) { - deltaX = origEvent.deltaX; - if ( deltaY === 0 ) { - delta = deltaX * -1; - } - } - - // No change actually happened, no reason to go any further - if ( deltaY === 0 && deltaX === 0 ) { - return; - } - - // Need to convert lines and pages to pixels if we aren't already in pixels - // There are three delta modes: - // * deltaMode 0 is by pixels, nothing to do - // * deltaMode 1 is by lines - // * deltaMode 2 is by pages - if ( origEvent.deltaMode === 1 ) { - var lineHeight = $.data( this, "mousewheel-line-height" ); - delta *= lineHeight; - deltaY *= lineHeight; - deltaX *= lineHeight; - } else if ( origEvent.deltaMode === 2 ) { - var pageHeight = $.data( this, "mousewheel-page-height" ); - delta *= pageHeight; - deltaY *= pageHeight; - deltaX *= pageHeight; - } - - // Store lowest absolute delta to normalize the delta values - absDelta = Math.max( Math.abs( deltaY ), Math.abs( deltaX ) ); - - if ( !lowestDelta || absDelta < lowestDelta ) { - lowestDelta = absDelta; - } - - // Get a whole, normalized value for the deltas - delta = Math[ delta >= 1 ? "floor" : "ceil" ]( delta / lowestDelta ); - deltaX = Math[ deltaX >= 1 ? "floor" : "ceil" ]( deltaX / lowestDelta ); - deltaY = Math[ deltaY >= 1 ? "floor" : "ceil" ]( deltaY / lowestDelta ); - - // Normalise offsetX and offsetY properties - if ( special.settings.normalizeOffset && this.getBoundingClientRect ) { - var boundingRect = this.getBoundingClientRect(); - event.offsetX = event.clientX - boundingRect.left; - event.offsetY = event.clientY - boundingRect.top; - } - - // Add information to the event object - event.deltaX = deltaX; - event.deltaY = deltaY; - event.deltaFactor = lowestDelta; - - // Go ahead and set deltaMode to 0 since we converted to pixels - // Although this is a little odd since we overwrite the deltaX/Y - // properties with normalized deltas. - event.deltaMode = 0; - - // Add event and delta to the front of the arguments - args.unshift( event, delta, deltaX, deltaY ); - - // Clear out lowestDelta after sometime to better - // handle multiple device types that give different - // a different lowestDelta - // Ex: trackpad = 3 and mouse wheel = 120 - window.clearTimeout( nullLowestDeltaTimeout ); - nullLowestDeltaTimeout = window.setTimeout( function() { - lowestDelta = null; - }, 200 ); - - return $.event.dispatch.apply( this, args ); - } + "use strict"; + + var nullLowestDeltaTimeout, lowestDelta, + slice = Array.prototype.slice; + + if ( $.event.fixHooks ) { + $.event.fixHooks.wheel = $.event.mouseHooks; + } + + var special = $.event.special.mousewheel = { + version: "@VERSION", + + setup: function() { + // Use passive event listeners if supported + var passiveSupported = false; + try { + var opts = Object.defineProperty({}, "passive", { + get: function() { + passiveSupported = true; + } + }); + window.addEventListener("test", null, opts); + } catch (e) {} + this.addEventListener( + "wheel", + handler, + passiveSupported ? { passive: true } : false + ); + + // Store the line height and page height for this particular element + $.data( this, "mousewheel-line-height", special.getLineHeight( this ) ); + $.data( this, "mousewheel-page-height", special.getPageHeight( this ) ); + }, + + teardown: function() { + // Remove with same passive option as setup + var passiveSupported = false; + try { + var opts = Object.defineProperty({}, "passive", { + get: function() { + passiveSupported = true; + } + }); + window.addEventListener("test", null, opts); + } catch (e) {} + this.removeEventListener( + "wheel", + handler, + passiveSupported ? { passive: true } : false + ); + + // Clean up the data we added to the element + $.removeData( this, "mousewheel-line-height" ); + $.removeData( this, "mousewheel-page-height" ); + }, + + getLineHeight: function( elem ) { + var $elem = $( elem ), + $parent = $elem.offsetParent(); + if ( !$parent.length ) { + $parent = $( "body" ); + } + return parseInt( $parent.css( "fontSize" ), 10 ) || + parseInt( $elem.css( "fontSize" ), 10 ) || 16; + }, + + getPageHeight: function( elem ) { + return $( elem ).height(); + }, + + settings: { + normalizeOffset: true // calls getBoundingClientRect for each event + } + }; + + function handler( origEvent ) { + var args = slice.call( arguments, 1 ), + delta = 0, + deltaX = 0, + deltaY = 0, + absDelta = 0, + event = $.event.fix( origEvent ); + + event.type = "mousewheel"; + + // New school wheel delta (wheel event) + if ( "deltaY" in origEvent ) { + deltaY = origEvent.deltaY * -1; + delta = deltaY; + } + if ( "deltaX" in origEvent ) { + deltaX = origEvent.deltaX; + if ( deltaY === 0 ) { + delta = deltaX * -1; + } + } + + // No change actually happened, no reason to go any further + if ( deltaY === 0 && deltaX === 0 ) { + return; + } + + // Need to convert lines and pages to pixels if we aren't already in pixels + // There are three delta modes: + // * deltaMode 0 is by pixels, nothing to do + // * deltaMode 1 is by lines + // * deltaMode 2 is by pages + if ( origEvent.deltaMode === 1 ) { + var lineHeight = $.data( this, "mousewheel-line-height" ); + delta *= lineHeight; + deltaY *= lineHeight; + deltaX *= lineHeight; + } else if ( origEvent.deltaMode === 2 ) { + var pageHeight = $.data( this, "mousewheel-page-height" ); + delta *= pageHeight; + deltaY *= pageHeight; + deltaX *= pageHeight; + } + + // Store lowest absolute delta to normalize the delta values + absDelta = Math.max( Math.abs( deltaY ), Math.abs( deltaX ) ); + + if ( !lowestDelta || absDelta < lowestDelta ) { + lowestDelta = absDelta; + } + + // Get a whole, normalized value for the deltas + delta = Math[ delta >= 1 ? "floor" : "ceil" ]( delta / lowestDelta ); + deltaX = Math[ deltaX >= 1 ? "floor" : "ceil" ]( deltaX / lowestDelta ); + deltaY = Math[ deltaY >= 1 ? "floor" : "ceil" ]( deltaY / lowestDelta ); + + // Normalise offsetX and offsetY properties + if ( special.settings.normalizeOffset && this.getBoundingClientRect ) { + var boundingRect = this.getBoundingClientRect(); + event.offsetX = event.clientX - boundingRect.left; + event.offsetY = event.clientY - boundingRect.top; + } + + // Add information to the event object + event.deltaX = deltaX; + event.deltaY = deltaY; + event.deltaFactor = lowestDelta; + + // Go ahead and set deltaMode to 0 since we converted to pixels + // Although this is a little odd since we overwrite the deltaX/Y + // properties with normalized deltas. + event.deltaMode = 0; + + // Add event and delta to the front of the arguments + args.unshift( event, delta, deltaX, deltaY ); + + // Clear out lowestDelta after sometime to better + // handle multiple device types that give different + // a different lowestDelta + // Ex: trackpad = 3 and mouse wheel = 120 + window.clearTimeout( nullLowestDeltaTimeout ); + nullLowestDeltaTimeout = window.setTimeout( function() { + lowestDelta = null; + }, 200 ); + + return $.event.dispatch.apply( this, args ); + } } ); From e72a327f8ce5dbeb1ca6d422b320706f3ebccdf9 Mon Sep 17 00:00:00 2001 From: summercms Date: Mon, 14 Jul 2025 18:33:56 +0100 Subject: [PATCH 4/4] Improve the comment tag --- src/jquery.mousewheel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jquery.mousewheel.js b/src/jquery.mousewheel.js index 393118861..b9a0597f7 100644 --- a/src/jquery.mousewheel.js +++ b/src/jquery.mousewheel.js @@ -58,7 +58,7 @@ }, teardown: function() { - // Remove with same passive option as setup + // Use passive event listeners if supported var passiveSupported = false; try { var opts = Object.defineProperty({}, "passive", {