From 9306704c1d3acb4727591c7bdf93e6eeb873abb4 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Tue, 27 Aug 2013 17:04:47 +0200 Subject: [PATCH 1/3] Add documentation in mapbrowserevent.js --- src/ol/mapbrowserevent.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ol/mapbrowserevent.js b/src/ol/mapbrowserevent.js index 3a540e8a2b..b0526c1754 100644 --- a/src/ol/mapbrowserevent.js +++ b/src/ol/mapbrowserevent.js @@ -310,6 +310,9 @@ ol.MapBrowserEventHandler.prototype.relayEvent_ = function(browserEvent) { */ ol.MapBrowserEventHandler.prototype.handleTouchStart_ = function(browserEvent) { // prevent context menu + // When the IE pointer events are used, this prevents a + // 'mousedown' from being fired after this event for the primary + // contact (first finger on the screen or mouse) browserEvent.preventDefault(); this.down_ = browserEvent; this.dragged_ = false; From dc5b209f7f0461a761551a27db34ac981bc935fc Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Tue, 27 Aug 2013 14:34:34 +0200 Subject: [PATCH 2/3] Change previous_ local variable type to boolean And rename it to pressed_ for clarity; the variable represents whether the mouse button is pressed --- src/ol/mapbrowserevent.js | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/ol/mapbrowserevent.js b/src/ol/mapbrowserevent.js index b0526c1754..3d7dbd2a25 100644 --- a/src/ol/mapbrowserevent.js +++ b/src/ol/mapbrowserevent.js @@ -124,10 +124,11 @@ ol.MapBrowserEventHandler = function(map) { this.map_ = map; /** - * @type {Object} + * Whether one of the mouse button is pressed. + * @type {boolean} * @private */ - this.previous_ = null; + this.pressed_ = false; /** * @type {boolean} @@ -231,11 +232,11 @@ ol.MapBrowserEventHandler.prototype.click_ = function(browserEvent) { * @private */ ol.MapBrowserEventHandler.prototype.handleMouseUp_ = function(browserEvent) { - if (this.previous_) { + if (this.pressed_) { this.down_ = null; goog.array.forEach(this.dragListenerKeys_, goog.events.unlistenByKey); this.dragListenerKeys_ = null; - this.previous_ = null; + this.pressed_ = false; if (this.dragged_) { var newEvent = new ol.MapBrowserEvent( ol.MapBrowserEvent.EventType.DRAGEND, this.map_, browserEvent); @@ -253,12 +254,9 @@ ol.MapBrowserEventHandler.prototype.handleMouseDown_ = function(browserEvent) { var newEvent = new ol.MapBrowserEvent( ol.MapBrowserEvent.EventType.DOWN, this.map_, browserEvent); this.dispatchEvent(newEvent); - if (!this.previous_) { + if (!this.pressed_) { this.down_ = browserEvent; - this.previous_ = { - clientX: browserEvent.clientX, - clientY: browserEvent.clientY - }; + this.pressed_ = true; this.dragged_ = false; this.dragListenerKeys_ = [ goog.events.listen(goog.global.document, goog.events.EventType.MOUSEMOVE, @@ -284,10 +282,6 @@ ol.MapBrowserEventHandler.prototype.handleMouseMove_ = function(browserEvent) { ol.MapBrowserEvent.EventType.DRAGSTART, this.map_, this.down_); this.dispatchEvent(newEvent); } - this.previous_ = { - clientX: browserEvent.clientX, - clientY: browserEvent.clientY - }; newEvent = new ol.MapBrowserEvent( ol.MapBrowserEvent.EventType.DRAG, this.map_, browserEvent); this.dispatchEvent(newEvent); From ecf953a12554dbcbbe5d75d2d3be3296e774ee33 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 28 Aug 2013 11:28:50 +0200 Subject: [PATCH 3/3] Remove pressed_ variable and rely on down_ to check if a mouse button is pressed --- src/ol/mapbrowserevent.js | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/ol/mapbrowserevent.js b/src/ol/mapbrowserevent.js index 3d7dbd2a25..ccc82b3f5e 100644 --- a/src/ol/mapbrowserevent.js +++ b/src/ol/mapbrowserevent.js @@ -123,13 +123,6 @@ ol.MapBrowserEventHandler = function(map) { */ this.map_ = map; - /** - * Whether one of the mouse button is pressed. - * @type {boolean} - * @private - */ - this.pressed_ = false; - /** * @type {boolean} * @private @@ -232,11 +225,10 @@ ol.MapBrowserEventHandler.prototype.click_ = function(browserEvent) { * @private */ ol.MapBrowserEventHandler.prototype.handleMouseUp_ = function(browserEvent) { - if (this.pressed_) { + if (this.down_) { this.down_ = null; goog.array.forEach(this.dragListenerKeys_, goog.events.unlistenByKey); this.dragListenerKeys_ = null; - this.pressed_ = false; if (this.dragged_) { var newEvent = new ol.MapBrowserEvent( ol.MapBrowserEvent.EventType.DRAGEND, this.map_, browserEvent); @@ -254,9 +246,8 @@ ol.MapBrowserEventHandler.prototype.handleMouseDown_ = function(browserEvent) { var newEvent = new ol.MapBrowserEvent( ol.MapBrowserEvent.EventType.DOWN, this.map_, browserEvent); this.dispatchEvent(newEvent); - if (!this.pressed_) { + if (!this.down_) { this.down_ = browserEvent; - this.pressed_ = true; this.dragged_ = false; this.dragListenerKeys_ = [ goog.events.listen(goog.global.document, goog.events.EventType.MOUSEMOVE,