[OpenLayers-Commits] r11911 - in sandbox/elemoine/3272:
lib/OpenLayers/Handler tests/Handler
commits-20090109 at openlayers.org
commits-20090109 at openlayers.org
Tue Apr 26 06:05:52 EDT 2011
Author: erilem
Date: 2011-04-26 03:05:51 -0700 (Tue, 26 Apr 2011)
New Revision: 11911
Modified:
sandbox/elemoine/3272/lib/OpenLayers/Handler/Path.js
sandbox/elemoine/3272/lib/OpenLayers/Handler/Point.js
sandbox/elemoine/3272/tests/Handler/Path.html
sandbox/elemoine/3272/tests/Handler/Polygon.html
Log:
apply patch-3272-A0.diff
Modified: sandbox/elemoine/3272/lib/OpenLayers/Handler/Path.js
===================================================================
--- sandbox/elemoine/3272/lib/OpenLayers/Handler/Path.js 2011-04-26 10:02:35 UTC (rev 11910)
+++ sandbox/elemoine/3272/lib/OpenLayers/Handler/Path.js 2011-04-26 10:05:51 UTC (rev 11911)
@@ -36,6 +36,14 @@
maxVertices: null,
/**
+ * Property: doubleTouchTolerance
+ * {Number} Maximum number of pixels between two touches for
+ * the gesture to be considered a "finalize feature" action.
+ * Default is 20.
+ */
+ doubleTouchTolerance: 20,
+
+ /**
* Property: freehand
* {Boolean} In freehand mode, the handler starts the path on mouse down,
* adds a point for every mouse move, and finishes the path on mouse up.
@@ -241,12 +249,14 @@
*/
touchstart: function(evt) {
if (this.timerId &&
- this.passesTolerance(this.lastTouchPx, evt.xy, this.dblclickTolerance)) {
+ this.passesTolerance(this.lastTouchPx, evt.xy,
+ this.doubleTouchTolerance)) {
// double-tap, finalize the geometry
- this.lastTouchPx = evt.xy; // for up() to detect dblclick and do nothing
this.finishGeometry();
window.clearTimeout(this.timerId);
this.timerId = null;
+ // set mouseDown to false for up() to do nothing
+ this.mouseDown = false;
return false;
} else {
if (this.timerId) {
@@ -277,7 +287,9 @@
if(this.freehandMode(evt)) {
stopDown = true;
}
- if (!this.touch && (!this.lastDown || !this.passesTolerance(this.lastDown, evt.xy, this.pixelTolerance))) {
+ if (!this.touch && (!this.lastDown ||
+ !this.passesTolerance(this.lastDown, evt.xy,
+ this.pixelTolerance))) {
this.modifyFeature(evt.xy, !!this.lastUp);
}
this.mouseDown = true;
@@ -323,13 +335,13 @@
* {Boolean} Allow event propagation
*/
up: function (evt) {
- if (this.mouseDown && (!this.lastUp || !this.passesTolerance(
- this.lastUp, evt.xy, this.dblclickTolerance))) {
+ if (this.mouseDown && (!this.lastUp || !this.lastUp.equals(evt.xy))) {
if(this.stoppedDown && this.freehandMode(evt)) {
this.removePoint();
this.finalize();
} else {
- if (this.passesTolerance(this.lastDown, evt.xy, this.pixelTolerance)) {
+ if (this.passesTolerance(this.lastDown, evt.xy,
+ this.pixelTolerance)) {
if (this.touch) {
this.modifyFeature(evt.xy);
}
Modified: sandbox/elemoine/3272/lib/OpenLayers/Handler/Point.js
===================================================================
--- sandbox/elemoine/3272/lib/OpenLayers/Handler/Point.js 2011-04-26 10:02:35 UTC (rev 11910)
+++ sandbox/elemoine/3272/lib/OpenLayers/Handler/Point.js 2011-04-26 10:05:51 UTC (rev 11911)
@@ -107,13 +107,6 @@
pixelTolerance: 5,
/**
- * APIProperty: dblclickTolerance
- * {Number} Maximum number of pixels between two touchend for an
- * event to be considered a dblclick. Default is 20.
- */
- dblclickTolerance: 20,
-
- /**
* Property: touch
* {Boolean} Indcates the support of touch events.
*/
@@ -534,8 +527,7 @@
return true;
}
// ignore double-clicks
- if (this.lastUp && this.passesTolerance(this.lastUp, evt.xy,
- this.dblclickTolerance)) {
+ if (this.lastUp && this.lastUp.equals(evt.xy)) {
return true;
}
if (this.lastDown && this.passesTolerance(this.lastDown, evt.xy,
@@ -572,13 +564,9 @@
/**
* Method: passesTolerance
* Determine whether the event is within the optional pixel tolerance.
- * Note that the pixel tolerance check only works if mousedown events get
- * to the listeners registered here. If they are stopped by other
- * elements, <pixelTolerance> and <dblclickTolerance> will have no effect
- * here (this method will always return true).
*
* Returns:
- * {Boolean} The click is within the pixel tolerance (if specified).
+ * {Boolean} The event is within the pixel tolerance (if specified).
*/
passesTolerance: function(pixel1, pixel2, tolerance) {
var passes = true;
Modified: sandbox/elemoine/3272/tests/Handler/Path.html
===================================================================
--- sandbox/elemoine/3272/tests/Handler/Path.html 2011-04-26 10:02:35 UTC (rev 11910)
+++ sandbox/elemoine/3272/tests/Handler/Path.html 2011-04-26 10:05:51 UTC (rev 11911)
@@ -179,8 +179,7 @@
}
},
{
- pixelTolerance: 0,
- dblclickTolerance: 0
+ pixelTolerance: 0
});
control.handler = handler;
map.addControl(control);
@@ -577,10 +576,10 @@
// added here each a non-working sequence is found.
//
- // stopDown:true, stopUp:true
+ // stopDown:true, stopUp:true, pixelTolerance:1
// a) click on (0, 0)
- // b) mousedown on (0.5, 0.5)
- // c) mouseup on (1, 1)
+ // b) mousedown on (1, 1)
+ // c) mouseup on (2, 2)
// d) dblclick on (10, 10)
function test_sequence1(t) {
t.plan(1);
@@ -595,7 +594,7 @@
var control = new OpenLayers.Control({});
var handler = new OpenLayers.Handler.Path(control,
{done: function(g) { log.geometry = g; }},
- {stopDown: true, stopUp: true}
+ {stopDown: true, stopUp: true, pixelTolerance: 1}
);
control.handler = handler;
map.addControl(control);
@@ -611,16 +610,16 @@
{type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
handler.mouseup(
{type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
- // b) mousedown on (0.5, 0.5)
+ // b) mousedown on (1, 1)
handler.mousemove(
- {type: "mousemove", xy: new OpenLayers.Pixel(0.5, 0.5)});
+ {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
handler.mousedown(
- {type: "mousedown", xy: new OpenLayers.Pixel(0.5, 0.5)});
- // c) mouseup on (1, 1)
+ {type: "mousedown", xy: new OpenLayers.Pixel(1, 1)});
+ // c) mouseup on (2, 2)
handler.mousemove(
- {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+ {type: "mousemove", xy: new OpenLayers.Pixel(2, 2)});
handler.mouseup(
- {type: "mouseup", xy: new OpenLayers.Pixel(1, 1)});
+ {type: "mouseup", xy: new OpenLayers.Pixel(2, 2)});
// d) dblclick on (10, 10)
handler.mousemove(
{type: "mousemove", xy: new OpenLayers.Pixel(10, 10)});
@@ -637,10 +636,10 @@
]), "geometry is correct");
}
- // stopDown:false, stopUp:false
+ // stopDown:false, stopUp:false, pixelTolerance:1
// a) click on (0, 0)
- // b) mousedown on (0.5, 0.5)
- // c) mouseup on (1, 1)
+ // b) mousedown on (1, 1)
+ // c) mouseup on (2, 2)
// d) dblclick on (10, 10)
function test_sequence2(t) {
t.plan(1);
@@ -655,7 +654,7 @@
var control = new OpenLayers.Control({});
var handler = new OpenLayers.Handler.Path(control,
{done: function(g) { log.geometry = g; }},
- {stopDown: false, stopUp: false}
+ {stopDown: false, stopUp: false, pixelTolerance: 1}
);
control.handler = handler;
map.addControl(control);
@@ -671,16 +670,16 @@
{type: "mousedown", xy: new OpenLayers.Pixel(0, 0)});
handler.mouseup(
{type: "mouseup", xy: new OpenLayers.Pixel(0, 0)});
- // b) mousedown on (0.5, 0.5)
+ // b) mousedown on (1, 1)
handler.mousemove(
- {type: "mousemove", xy: new OpenLayers.Pixel(0.5, 0.5)});
+ {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
handler.mousedown(
- {type: "mousedown", xy: new OpenLayers.Pixel(0.5, 0.5)});
- // c) mouseup on (1, 1)
+ {type: "mousedown", xy: new OpenLayers.Pixel(1, 1)});
+ // c) mouseup on (2, 2)
handler.mousemove(
- {type: "mousemove", xy: new OpenLayers.Pixel(1, 1)});
+ {type: "mousemove", xy: new OpenLayers.Pixel(2, 2)});
handler.mouseup(
- {type: "mouseup", xy: new OpenLayers.Pixel(1, 1)});
+ {type: "mouseup", xy: new OpenLayers.Pixel(2, 2)});
// d) dblclick on (10, 10)
handler.mousemove(
{type: "mousemove", xy: new OpenLayers.Pixel(10, 10)});
@@ -714,8 +713,7 @@
var control = new OpenLayers.Control({});
var handler = new OpenLayers.Handler.Path(control, {},
{
- pixelTolerance: 0,
- dblclickTolerance: 0
+ pixelTolerance: 0
});
control.handler = handler;
map.addControl(control);
@@ -841,7 +839,7 @@
log = {type: 'modify', geometry: g, feature: f};
}
}, {
- dblclickTolerance: 2
+ doubleTouchTolerance: 2
});
control.handler = handler;
map.addControl(control);
@@ -920,7 +918,7 @@
log = {type: 'modify', geometry: g, feature: f};
}
}, {
- dblclickTolerance: 2
+ doubleTouchTolerance: 2
});
control.handler = handler;
map.addControl(control);
Modified: sandbox/elemoine/3272/tests/Handler/Polygon.html
===================================================================
--- sandbox/elemoine/3272/tests/Handler/Polygon.html 2011-04-26 10:02:35 UTC (rev 11910)
+++ sandbox/elemoine/3272/tests/Handler/Polygon.html 2011-04-26 10:05:51 UTC (rev 11911)
@@ -170,8 +170,7 @@
}
},
{
- pixelTolerance: 0,
- dblclickTolerance: 0
+ pixelTolerance: 0
});
control.handler = handler;
map.addControl(control);
@@ -563,8 +562,7 @@
OpenLayers.Handler.Polygon,
{handlerOptions: {
holeModifier: "altKey",
- pixelTolerance: 0,
- dblclickTolerance: 0
+ pixelTolerance: 0
}}
);
map.addControl(draw);
@@ -780,7 +778,7 @@
var handler = new OpenLayers.Handler.Polygon(control,
{done: function(g) { log.geometry = g; }},
{stopDown: true, stopUp: true,
- pixelTolerance: 0, dblclickTolerance: 0}
+ pixelTolerance: 0}
);
control.handler = handler;
map.addControl(control);
@@ -852,7 +850,7 @@
var handler = new OpenLayers.Handler.Polygon(control,
{done: function(g) { log.geometry = g; }},
{stopDown: false, stopUp: false,
- pixelTolerance: 0, dblclickTolerance: 0}
+ pixelTolerance: 0}
);
control.handler = handler;
map.addControl(control);
@@ -930,7 +928,7 @@
log = {type: 'modify', geometry: g, feature: f};
}
}, {
- dblclickTolerance: 2
+ doubleTouchTolerance: 2
});
control.handler = handler;
map.addControl(control);
@@ -1027,7 +1025,7 @@
log = {type: 'modify', geometry: g, feature: f};
}
}, {
- dblclickTolerance: 2
+ doubleTouchTolerance: 2
});
control.handler = handler;
map.addControl(control);
More information about the Commits
mailing list