make it so features are not selected if there are multiple touches in the touchstart event, r=bbinet (closes #3279)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@11948 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -147,7 +147,8 @@ OpenLayers.Handler.Feature = OpenLayers.Class(OpenLayers.Handler, {
|
|||||||
scope: this
|
scope: this
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return this.mousedown(evt);
|
return OpenLayers.Event.isMultiTouch(evt) ?
|
||||||
|
true : this.mousedown(evt);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -588,6 +588,64 @@
|
|||||||
t.eq(clicks, 0, "click callback does not trigger when tolerance is reached");
|
t.eq(clicks, 0, "click callback does not trigger when tolerance is reached");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_multitouch_canvas(t) {
|
||||||
|
var supported = OpenLayers.Renderer.Canvas.prototype.supported();
|
||||||
|
if (!supported) { t.plan(0); return; }
|
||||||
|
|
||||||
|
t.plan(1);
|
||||||
|
|
||||||
|
// set up
|
||||||
|
|
||||||
|
var log;
|
||||||
|
|
||||||
|
var map = new OpenLayers.Map('map');
|
||||||
|
var layer = new OpenLayers.Layer.Vector('vectors', {
|
||||||
|
renderers: ['Canvas'],
|
||||||
|
isBaseLayer: true
|
||||||
|
});
|
||||||
|
map.addLayer(layer);
|
||||||
|
|
||||||
|
var control = new OpenLayers.Control();
|
||||||
|
var handler = new OpenLayers.Handler.Feature(control, layer,
|
||||||
|
{click: function() { log++; }});
|
||||||
|
control.handler = handler;
|
||||||
|
map.addControl(control);
|
||||||
|
control.activate();
|
||||||
|
|
||||||
|
var feature = new OpenLayers.Feature.Vector(
|
||||||
|
new OpenLayers.Geometry.Point(0, 0));
|
||||||
|
layer.addFeatures(feature);
|
||||||
|
|
||||||
|
map.zoomToMaxExtent();
|
||||||
|
|
||||||
|
// test
|
||||||
|
|
||||||
|
// mock getMousePosition on the events object to make
|
||||||
|
// sure scrolls, offsets and leftop do not interfere
|
||||||
|
map.events.getMousePosition = function(evt) {
|
||||||
|
return new OpenLayers.Pixel(evt.clientX,
|
||||||
|
evt.clientY);
|
||||||
|
};
|
||||||
|
|
||||||
|
log = 0;
|
||||||
|
var evt = {
|
||||||
|
type: 'touchstart',
|
||||||
|
touches: [{
|
||||||
|
clientX: 100,
|
||||||
|
clientY: 75
|
||||||
|
}, {
|
||||||
|
clientX: 200,
|
||||||
|
clientY: 75
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
map.events.handleBrowserEvent(evt);
|
||||||
|
t.eq(log, 0, "no feature selection when multi-touching");
|
||||||
|
|
||||||
|
// tear down
|
||||||
|
|
||||||
|
map.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
Reference in New Issue
Block a user