From 8701a54603ff5ab160cd2e4d20d0e51bdd90ee97 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Fri, 7 Dec 2012 21:09:09 +0100 Subject: [PATCH 1/2] Cloning event for use in delayed function In IE, where window.event is used, the event can change during the delay. To avoid this, we store the event properties in a new object. --- lib/OpenLayers/Handler/MouseWheel.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/OpenLayers/Handler/MouseWheel.js b/lib/OpenLayers/Handler/MouseWheel.js index a64747e47e..c207f2dadb 100644 --- a/lib/OpenLayers/Handler/MouseWheel.js +++ b/lib/OpenLayers/Handler/MouseWheel.js @@ -183,9 +183,11 @@ OpenLayers.Handler.MouseWheel = OpenLayers.Class(OpenLayers.Handler, { if(this.interval) { window.clearTimeout(this._timeoutId); + // store e because window.event might change during delay + var evt = OpenLayers.Util.extend({}, e); this._timeoutId = window.setTimeout( OpenLayers.Function.bind(function(){ - this.wheelZoom(e); + this.wheelZoom(evt); }, this), this.interval ); From c36b89787835a408a357baed968178ed7328fd09 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Fri, 7 Dec 2012 21:10:20 +0100 Subject: [PATCH 2/2] Removing unused code Because this method is called by OpenLayers.Function.bindAsEventListener, which conditionally assigns window.event already, e cannot be null or undefined here. --- lib/OpenLayers/Handler/MouseWheel.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/OpenLayers/Handler/MouseWheel.js b/lib/OpenLayers/Handler/MouseWheel.js index c207f2dadb..135edb39a5 100644 --- a/lib/OpenLayers/Handler/MouseWheel.js +++ b/lib/OpenLayers/Handler/MouseWheel.js @@ -163,9 +163,6 @@ OpenLayers.Handler.MouseWheel = OpenLayers.Class(OpenLayers.Handler, { if (!overScrollableDiv && overMapDiv) { if (allowScroll) { var delta = 0; - if (!e) { - e = window.event; - } if (e.wheelDelta) { delta = e.wheelDelta;