projects
/
lantea.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
try to use stopPropagation to make sure touch events aren't handled by the browser...
[lantea.git]
/
js
/
map.js
diff --git
a/js/map.js
b/js/map.js
index ce664298e6c478fd3c08576f26b99fe7565c87ac..361420b7e1e91088f204f932d678d6d0bf5e911d 100644
(file)
--- a/
js/map.js
+++ b/
js/map.js
@@
-163,13
+163,17
@@
function loadPrefs(aEvent) {
});
gWaitCounter++;
var trackLoadStarted = false;
});
gWaitCounter++;
var trackLoadStarted = false;
+ var redrawBase = 100;
gTrackStore.getListStepped(function(aTPoint) {
if (aTPoint) {
// Add in front and return new length.
var tracklen = gTrack.unshift(aTPoint);
gTrackStore.getListStepped(function(aTPoint) {
if (aTPoint) {
// Add in front and return new length.
var tracklen = gTrack.unshift(aTPoint);
- // Redraw track every 100 values (initial paint will do first anyhow).
- if (tracklen % 100 == 0)
+ // Redraw track periodically, larger distance the longer it gets.
+ // Initial paint will do initial track drawing.
+ if (tracklen % redrawBase == 0) {
drawTrack();
drawTrack();
+ redrawBase = tracklen;
+ }
}
else {
// Last point received.
}
else {
// Last point received.
@@
-458,6
+462,10
@@
var mapEvHandler = {
handleEvent: function(aEvent) {
var touchEvent = aEvent.type.indexOf('touch') != -1;
handleEvent: function(aEvent) {
var touchEvent = aEvent.type.indexOf('touch') != -1;
+ if (touchEvent) {
+ aEvent.stopPropagation();
+ }
+
// Bail out if the event is happening on an input.
if (aEvent.target.tagName.toLowerCase() == "input")
return;
// Bail out if the event is happening on an input.
if (aEvent.target.tagName.toLowerCase() == "input")
return;
@@
-512,7
+520,9
@@
var mapEvHandler = {
Math.pow(aEvent.targetTouches.item(1).clientY -
aEvent.targetTouches.item(0).clientY, 2)
);
Math.pow(aEvent.targetTouches.item(1).clientY -
aEvent.targetTouches.item(0).clientY, 2)
);
- console.log(gPinchStartWidth + ' <?> ' + curPinchStartWidth);
+ if (!gPinchStartWidth)
+ gPinchStartWidth = curPinchStartWidth;
+
if (gPinchStartWidth / curPinchStartWidth > 1.7 ||
gPinchStartWidth / curPinchStartWidth < 0.6) {
var newZoomLevel = gPos.z + (gPinchStartWidth < curPinchStartWidth ? 1 : -1);
if (gPinchStartWidth / curPinchStartWidth > 1.7 ||
gPinchStartWidth / curPinchStartWidth < 0.6) {
var newZoomLevel = gPos.z + (gPinchStartWidth < curPinchStartWidth ? 1 : -1);
@@
-536,8
+546,12
@@
var mapEvHandler = {
zoomIn();
else
zoomOut();
zoomIn();
else
zoomOut();
+
+ // Reset pinch start width and start another pinch gesture.
+ gPinchStartWidth = null;
}
}
}
}
+ // If we are in a pinch, do not drag.
break;
}
var x = coordObj.clientX - gMapCanvas.offsetLeft;
break;
}
var x = coordObj.clientX - gMapCanvas.offsetLeft;
@@
-568,6
+582,7
@@
var mapEvHandler = {
break;
case "mouseup":
case "touchend":
break;
case "mouseup":
case "touchend":
+ gPinchStartWidth = null;
gDragging = false;
showUI();
break;
gDragging = false;
showUI();
break;