Merge pull request #2897 from fredj/longclick

Remove pointerup listener on controls
This commit is contained in:
Frédéric Junod
2014-11-04 17:32:14 +01:00
11 changed files with 43 additions and 115 deletions
+1
View File
@@ -290,6 +290,7 @@ def examples_star_json(name, match):
"externs/bootstrap.js", "externs/bootstrap.js",
"externs/closure-compiler.js", "externs/closure-compiler.js",
"externs/example.js", "externs/example.js",
"externs/fastclick.js",
"externs/geojson.js", "externs/geojson.js",
"externs/jquery-1.9.js", "externs/jquery-1.9.js",
"externs/proj4js.js", "externs/proj4js.js",
+1
View File
@@ -15,6 +15,7 @@
"externs/bootstrap.js", "externs/bootstrap.js",
"externs/closure-compiler.js", "externs/closure-compiler.js",
"externs/example.js", "externs/example.js",
"externs/fastclick.js",
"externs/geojson.js", "externs/geojson.js",
"externs/jquery-1.9.js", "externs/jquery-1.9.js",
"externs/proj4js.js", "externs/proj4js.js",
+1
View File
@@ -18,6 +18,7 @@
<div id="map" class="map"></div> <div id="map" class="map"></div>
<script src="../resources/jquery.min.js" type="text/javascript"></script> <script src="../resources/jquery.min.js" type="text/javascript"></script>
<script src="../resources/example-behaviour.js" type="text/javascript"></script> <script src="../resources/example-behaviour.js" type="text/javascript"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.3/fastclick.js" type="text/javascript"></script>
<script src="loader.js?id=mobile-full-screen" type="text/javascript"></script> <script src="loader.js?id=mobile-full-screen" type="text/javascript"></script>
<div style="display: none;"> <div style="display: none;">
+8
View File
@@ -32,3 +32,11 @@ geolocation.once('change:position', function() {
view.setCenter(geolocation.getPosition()); view.setCenter(geolocation.getPosition());
view.setResolution(2.388657133911758); view.setResolution(2.388657133911758);
}); });
// Use FastClick to eliminate the 300ms delay between a physical tap
// and the firing of a click event on mobile browsers.
// See http://updates.html5rocks.com/2013/12/300ms-tap-delay-gone-away
// for more information.
$(function() {
FastClick.attach(document.body);
});
+25
View File
@@ -0,0 +1,25 @@
/**
* @fileoverview Externs for FastClick 1.0.3
* @see https://github.com/ftlabs/fastclick
* @externs
*/
/**
* @type {Object}
* @const
*/
var FastClick = {};
/**
* @typedef {{
* touchBoundary: (number|undefined),
* tapDelay: (number|undefined)
* }}
*/
FastClick.AttachOptions;
/**
* @param {Element} layer
* @param {FastClick.AttachOptions=} opt_options
*/
FastClick.attach = function(layer, opt_options) {};
+1 -18
View File
@@ -12,7 +12,6 @@ goog.require('goog.style');
goog.require('ol.Attribution'); goog.require('ol.Attribution');
goog.require('ol.control.Control'); goog.require('ol.control.Control');
goog.require('ol.css'); goog.require('ol.css');
goog.require('ol.pointer.PointerEventHandler');
@@ -97,10 +96,6 @@ ol.control.Attribution = function(opt_options) {
'title': tipLabel 'title': tipLabel
}, this.labelSpan_); }, this.labelSpan_);
var buttonHandler = new ol.pointer.PointerEventHandler(button);
this.registerDisposable(buttonHandler);
goog.events.listen(buttonHandler, ol.pointer.EventType.POINTERUP,
this.handlePointerUp_, false, this);
goog.events.listen(button, goog.events.EventType.CLICK, goog.events.listen(button, goog.events.EventType.CLICK,
this.handleClick_, false, this); this.handleClick_, false, this);
@@ -330,19 +325,7 @@ ol.control.Attribution.prototype.insertLogos_ = function(frameState) {
* @private * @private
*/ */
ol.control.Attribution.prototype.handleClick_ = function(event) { ol.control.Attribution.prototype.handleClick_ = function(event) {
if (event.screenX !== 0 && event.screenY !== 0) { event.preventDefault();
return;
}
this.handleToggle_();
};
/**
* @param {ol.pointer.PointerEvent} pointerEvent The event to handle
* @private
*/
ol.control.Attribution.prototype.handlePointerUp_ = function(pointerEvent) {
pointerEvent.browserEvent.preventDefault();
this.handleToggle_(); this.handleToggle_();
}; };
+2 -18
View File
@@ -10,7 +10,6 @@ goog.require('goog.events');
goog.require('goog.events.EventType'); goog.require('goog.events.EventType');
goog.require('ol.control.Control'); goog.require('ol.control.Control');
goog.require('ol.css'); goog.require('ol.css');
goog.require('ol.pointer.PointerEventHandler');
@@ -45,10 +44,7 @@ ol.control.FullScreen = function(opt_options) {
'type': 'button', 'type': 'button',
'title': tipLabel 'title': tipLabel
}); });
var buttonHandler = new ol.pointer.PointerEventHandler(button);
this.registerDisposable(buttonHandler);
goog.events.listen(buttonHandler,
ol.pointer.EventType.POINTERUP, this.handlePointerUp_, false, this);
goog.events.listen(button, goog.events.EventType.CLICK, goog.events.listen(button, goog.events.EventType.CLICK,
this.handleClick_, false, this); this.handleClick_, false, this);
@@ -88,19 +84,7 @@ goog.inherits(ol.control.FullScreen, ol.control.Control);
* @private * @private
*/ */
ol.control.FullScreen.prototype.handleClick_ = function(event) { ol.control.FullScreen.prototype.handleClick_ = function(event) {
if (event.screenX !== 0 && event.screenY !== 0) { event.preventDefault();
return;
}
this.handleFullScreen_();
};
/**
* @param {ol.pointer.PointerEvent} pointerEvent The event to handle
* @private
*/
ol.control.FullScreen.prototype.handlePointerUp_ = function(pointerEvent) {
pointerEvent.browserEvent.preventDefault();
this.handleFullScreen_(); this.handleFullScreen_();
}; };
+1 -18
View File
@@ -19,7 +19,6 @@ goog.require('ol.control.Control');
goog.require('ol.coordinate'); goog.require('ol.coordinate');
goog.require('ol.css'); goog.require('ol.css');
goog.require('ol.extent'); goog.require('ol.extent');
goog.require('ol.pointer.PointerEventHandler');
@@ -84,10 +83,6 @@ ol.control.OverviewMap = function(opt_options) {
'title': tipLabel 'title': tipLabel
}, this.labelSpan_); }, this.labelSpan_);
var buttonHandler = new ol.pointer.PointerEventHandler(button);
this.registerDisposable(buttonHandler);
goog.events.listen(buttonHandler, ol.pointer.EventType.POINTERUP,
this.handlePointerUp_, false, this);
goog.events.listen(button, goog.events.EventType.CLICK, goog.events.listen(button, goog.events.EventType.CLICK,
this.handleClick_, false, this); this.handleClick_, false, this);
@@ -419,19 +414,7 @@ ol.control.OverviewMap.prototype.calculateCoordinateRotate_ = function(
* @private * @private
*/ */
ol.control.OverviewMap.prototype.handleClick_ = function(event) { ol.control.OverviewMap.prototype.handleClick_ = function(event) {
if (event.screenX !== 0 && event.screenY !== 0) { event.preventDefault();
return;
}
this.handleToggle_();
};
/**
* @param {ol.pointer.PointerEvent} pointerEvent The event to handle
* @private
*/
ol.control.OverviewMap.prototype.handlePointerUp_ = function(pointerEvent) {
pointerEvent.browserEvent.preventDefault();
this.handleToggle_(); this.handleToggle_();
}; };
+1 -18
View File
@@ -11,7 +11,6 @@ goog.require('ol.animation');
goog.require('ol.control.Control'); goog.require('ol.control.Control');
goog.require('ol.css'); goog.require('ol.css');
goog.require('ol.easing'); goog.require('ol.easing');
goog.require('ol.pointer.PointerEventHandler');
@@ -49,10 +48,6 @@ ol.control.Rotate = function(opt_options) {
'title': tipLabel 'title': tipLabel
}, this.label_); }, this.label_);
var handler = new ol.pointer.PointerEventHandler(button);
this.registerDisposable(handler);
goog.events.listen(handler, ol.pointer.EventType.POINTERUP,
ol.control.Rotate.prototype.handlePointerUp_, false, this);
goog.events.listen(button, goog.events.EventType.CLICK, goog.events.listen(button, goog.events.EventType.CLICK,
ol.control.Rotate.prototype.handleClick_, false, this); ol.control.Rotate.prototype.handleClick_, false, this);
@@ -103,19 +98,7 @@ goog.inherits(ol.control.Rotate, ol.control.Control);
* @private * @private
*/ */
ol.control.Rotate.prototype.handleClick_ = function(event) { ol.control.Rotate.prototype.handleClick_ = function(event) {
if (event.screenX !== 0 && event.screenY !== 0) { event.preventDefault();
return;
}
this.resetNorth_();
};
/**
* @param {ol.pointer.PointerEvent} pointerEvent The event to handle
* @private
*/
ol.control.Rotate.prototype.handlePointerUp_ = function(pointerEvent) {
pointerEvent.browserEvent.preventDefault();
this.resetNorth_(); this.resetNorth_();
}; };
+1 -25
View File
@@ -8,7 +8,6 @@ goog.require('ol.animation');
goog.require('ol.control.Control'); goog.require('ol.control.Control');
goog.require('ol.css'); goog.require('ol.css');
goog.require('ol.easing'); goog.require('ol.easing');
goog.require('ol.pointer.PointerEventHandler');
@@ -47,11 +46,6 @@ ol.control.Zoom = function(opt_options) {
'title': zoomInTipLabel 'title': zoomInTipLabel
}, zoomInLabel); }, zoomInLabel);
var inElementHandler = new ol.pointer.PointerEventHandler(inElement);
this.registerDisposable(inElementHandler);
goog.events.listen(inElementHandler,
ol.pointer.EventType.POINTERUP, goog.partial(
ol.control.Zoom.prototype.handlePointerUp_, delta), false, this);
goog.events.listen(inElement, goog.events.listen(inElement,
goog.events.EventType.CLICK, goog.partial( goog.events.EventType.CLICK, goog.partial(
ol.control.Zoom.prototype.handleClick_, delta), false, this); ol.control.Zoom.prototype.handleClick_, delta), false, this);
@@ -69,11 +63,6 @@ ol.control.Zoom = function(opt_options) {
'title': zoomOutTipLabel 'title': zoomOutTipLabel
}, zoomOutLabel); }, zoomOutLabel);
var outElementHandler = new ol.pointer.PointerEventHandler(outElement);
this.registerDisposable(outElementHandler);
goog.events.listen(outElementHandler,
ol.pointer.EventType.POINTERUP, goog.partial(
ol.control.Zoom.prototype.handlePointerUp_, -delta), false, this);
goog.events.listen(outElement, goog.events.listen(outElement,
goog.events.EventType.CLICK, goog.partial( goog.events.EventType.CLICK, goog.partial(
ol.control.Zoom.prototype.handleClick_, -delta), false, this); ol.control.Zoom.prototype.handleClick_, -delta), false, this);
@@ -111,20 +100,7 @@ goog.inherits(ol.control.Zoom, ol.control.Control);
* @private * @private
*/ */
ol.control.Zoom.prototype.handleClick_ = function(delta, event) { ol.control.Zoom.prototype.handleClick_ = function(delta, event) {
if (event.screenX !== 0 && event.screenY !== 0) { event.preventDefault();
return;
}
this.zoomByDelta_(delta);
};
/**
* @param {number} delta Zoom delta.
* @param {ol.pointer.PointerEvent} pointerEvent The event to handle
* @private
*/
ol.control.Zoom.prototype.handlePointerUp_ = function(delta, pointerEvent) {
pointerEvent.browserEvent.preventDefault();
this.zoomByDelta_(delta); this.zoomByDelta_(delta);
}; };
+1 -18
View File
@@ -7,7 +7,6 @@ goog.require('goog.events');
goog.require('goog.events.EventType'); goog.require('goog.events.EventType');
goog.require('ol.control.Control'); goog.require('ol.control.Control');
goog.require('ol.css'); goog.require('ol.css');
goog.require('ol.pointer.PointerEventHandler');
@@ -40,10 +39,6 @@ ol.control.ZoomToExtent = function(opt_options) {
'title': tipLabel 'title': tipLabel
}); });
var buttonHandler = new ol.pointer.PointerEventHandler(button);
this.registerDisposable(buttonHandler);
goog.events.listen(buttonHandler, ol.pointer.EventType.POINTERUP,
this.handlePointerUp_, false, this);
goog.events.listen(button, goog.events.EventType.CLICK, goog.events.listen(button, goog.events.EventType.CLICK,
this.handleClick_, false, this); this.handleClick_, false, this);
@@ -71,19 +66,7 @@ goog.inherits(ol.control.ZoomToExtent, ol.control.Control);
* @private * @private
*/ */
ol.control.ZoomToExtent.prototype.handleClick_ = function(event) { ol.control.ZoomToExtent.prototype.handleClick_ = function(event) {
if (event.screenX !== 0 && event.screenY !== 0) { event.preventDefault();
return;
}
this.handleZoomToExtent_();
};
/**
* @param {ol.pointer.PointerEvent} pointerEvent The event to handle
* @private
*/
ol.control.ZoomToExtent.prototype.handlePointerUp_ = function(pointerEvent) {
pointerEvent.browserEvent.preventDefault();
this.handleZoomToExtent_(); this.handleZoomToExtent_();
}; };