fix: double-tap, wait for second move event

This commit is contained in:
Hannes Janetzek 2014-02-14 12:05:20 +01:00
parent d3b25cd3d5
commit eacc9a2d30

View File

@ -124,7 +124,7 @@ public class MapEventLayer extends Layer implements Map.InputListener, GestureLi
return true; return true;
} }
if (!mDown) { if (!(mDown || mDoubleTap)) {
/* no down event received */ /* no down event received */
return false; return false;
} }
@ -150,9 +150,9 @@ public class MapEventLayer extends Layer implements Map.InputListener, GestureLi
return true; return true;
} }
if (action == MotionEvent.ACTION_CANCEL) { if (action == MotionEvent.ACTION_CANCEL) {
mDoubleTap = false; //mStartMove = -1;
mStartMove = -1;
mDown = false; mDown = false;
mDoubleTap = false;
return true; return true;
} }
if (action == MotionEvent.ACTION_POINTER_DOWN) { if (action == MotionEvent.ACTION_POINTER_DOWN) {
@ -188,6 +188,11 @@ public class MapEventLayer extends Layer implements Map.InputListener, GestureLi
/* double-tap + hold */ /* double-tap + hold */
if (mDoubleTap) { if (mDoubleTap) {
if (!mDown) {
// TODO check if within tap range
mDown = true;
return true;
}
// FIXME limit scale properly // FIXME limit scale properly
mViewport.scaleMap(1 - my / (height / 6), 0, 0); mViewport.scaleMap(1 - my / (height / 6), 0, 0);
mMap.updateMap(true); mMap.updateMap(true);
@ -385,7 +390,6 @@ public class MapEventLayer extends Layer implements Map.InputListener, GestureLi
public boolean onGesture(Gesture g, MotionEvent e) { public boolean onGesture(Gesture g, MotionEvent e) {
if (g == Gesture.DOUBLE_TAP) { if (g == Gesture.DOUBLE_TAP) {
mDoubleTap = true; mDoubleTap = true;
mDown = true;
return true; return true;
} }
return false; return false;