Making it so controls that register for mousedown and mouseup work in touch environments. r=crschmidt (closes #3075)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@11207 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Tim Schaub
2011-02-21 17:31:19 +00:00
parent 3066b50956
commit 849426f845
3 changed files with 36 additions and 14 deletions

View File

@@ -807,6 +807,11 @@ OpenLayers.Events = OpenLayers.Class({
// noone's listening, bail out
return;
}
// add clientX & clientY to all events - only corresponds to the first touch
if (evt.touches && evt.touches[0]) {
evt.clientX = evt.touches[0].clientX;
evt.clientY = evt.touches[0].clientY;
}
if (this.includeXY) {
evt.xy = this.getMousePosition(evt);
}
@@ -861,16 +866,11 @@ OpenLayers.Events = OpenLayers.Class({
if (!this.element.offsets) {
this.element.offsets = OpenLayers.Util.pagePosition(this.element);
}
var clientX = evt.clientX;
var clientY = evt.clientY;
if (evt.touches && evt.touches.length > 0) {
clientX = evt.touches[0].clientX;
clientY = evt.touches[0].clientY;
}
return new OpenLayers.Pixel(
(clientX + this.element.scrolls[0]) - this.element.offsets[0]
(evt.clientX + this.element.scrolls[0]) - this.element.offsets[0]
- this.element.lefttop[0],
(clientY + this.element.scrolls[1]) - this.element.offsets[1]
(evt.clientY + this.element.scrolls[1]) - this.element.offsets[1]
- this.element.lefttop[1]
);
},