By default, the click handler now has a zero pixelTolerance. This means we don't call click if the click includes a drag. Set pixelTolerance to null if you want click called with a drag. r=crschmidt (closes #1335)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@6066 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -38,7 +38,7 @@
|
|||||||
defaultHandlerOptions: {
|
defaultHandlerOptions: {
|
||||||
'single': true,
|
'single': true,
|
||||||
'double': false,
|
'double': false,
|
||||||
'pixelTolerance': null,
|
'pixelTolerance': 0,
|
||||||
'stopSingle': false,
|
'stopSingle': false,
|
||||||
'stopDouble': false
|
'stopDouble': false
|
||||||
},
|
},
|
||||||
@@ -102,10 +102,10 @@
|
|||||||
"double": true
|
"double": true
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
"nodrag": new OpenLayers.Control.Click({
|
"drag": new OpenLayers.Control.Click({
|
||||||
handlerOptions: {
|
handlerOptions: {
|
||||||
"single": true,
|
"single": true,
|
||||||
"pixelTolerance": 1
|
"pixelTolerance": null
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
"stopsingle": new OpenLayers.Control.Click({
|
"stopsingle": new OpenLayers.Control.Click({
|
||||||
@@ -204,9 +204,9 @@
|
|||||||
<td><textarea class="output" id="bothOutput"></textarea></td>
|
<td><textarea class="output" id="bothOutput"></textarea></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>single no drag</td>
|
<td>single with drag</td>
|
||||||
<td><button id="nodragStatus" onclick="toggle('nodrag')">off</button></td>
|
<td><button id="dragStatus" onclick="toggle('drag')">off</button></td>
|
||||||
<td><textarea class="output" id="nodragOutput"></textarea></td>
|
<td><textarea class="output" id="dragOutput"></textarea></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>single with stop</td>
|
<td>single with stop</td>
|
||||||
|
|||||||
@@ -45,12 +45,12 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
|
|||||||
/**
|
/**
|
||||||
* APIProperty: pixelTolerance
|
* APIProperty: pixelTolerance
|
||||||
* {Number} Maximum number of pixels between mouseup and mousedown for an
|
* {Number} Maximum number of pixels between mouseup and mousedown for an
|
||||||
* event to be considered a click. Default is null. If set to an
|
* event to be considered a click. Default is 0. If set to an
|
||||||
* integer value, clicks with a drag greater than the value will be
|
* integer value, clicks with a drag greater than the value will be
|
||||||
* ignored. This property can only be set when the handler is
|
* ignored. This property can only be set when the handler is
|
||||||
* constructed.
|
* constructed.
|
||||||
*/
|
*/
|
||||||
pixelTolerance: null,
|
pixelTolerance: 0,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* APIProperty: stopSingle
|
* APIProperty: stopSingle
|
||||||
@@ -182,7 +182,7 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
|
|||||||
*/
|
*/
|
||||||
passesTolerance: function(evt) {
|
passesTolerance: function(evt) {
|
||||||
var passes = true;
|
var passes = true;
|
||||||
if(this.pixelTolerance && this.down) {
|
if(this.pixelTolerance != null && this.down) {
|
||||||
var dpx = Math.sqrt(
|
var dpx = Math.sqrt(
|
||||||
Math.pow(this.down.x - evt.xy.x, 2) +
|
Math.pow(this.down.x - evt.xy.x, 2) +
|
||||||
Math.pow(this.down.y - evt.xy.y, 2)
|
Math.pow(this.down.y - evt.xy.y, 2)
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function test_Handler_Click_events(t) {
|
function test_Handler_Click_events(t) {
|
||||||
t.plan(30);
|
t.plan(35);
|
||||||
|
|
||||||
var map = new OpenLayers.Map('map');
|
var map = new OpenLayers.Map('map');
|
||||||
var control = {
|
var control = {
|
||||||
@@ -72,8 +72,8 @@
|
|||||||
|
|
||||||
// list below events that should be handled (events) and those
|
// list below events that should be handled (events) and those
|
||||||
// that should not be handled (nonevents) by the handler
|
// that should not be handled (nonevents) by the handler
|
||||||
var events = ["click", "dblclick"];
|
var events = ["click", "dblclick", "mousedown"];
|
||||||
var nonevents = ["mousedown", "mousemove", "mouseup", "resize", "focus", "blur"];
|
var nonevents = ["mousemove", "mouseup", "resize", "focus", "blur"];
|
||||||
var handler = new OpenLayers.Handler.Click(control);
|
var handler = new OpenLayers.Handler.Click(control);
|
||||||
// set browser event like properties on the handler
|
// set browser event like properties on the handler
|
||||||
for(var i=0; i<events.length; ++i) {
|
for(var i=0; i<events.length; ++i) {
|
||||||
|
|||||||
Reference in New Issue
Block a user