forked from organicmaps/organicmaps
[drape] correct transfer information about touches
This commit is contained in:
parent
d0b0c3c908
commit
eaadbb6268
2 changed files with 26 additions and 8 deletions
|
@ -64,11 +64,7 @@ enum MultiTouchAction
|
|||
MULTITOUCH_UP = 0x00000001,
|
||||
MULTITOUCH_DOWN = 0x00000002,
|
||||
MULTITOUCH_MOVE = 0x00000003,
|
||||
MULTITOUCH_CANCEL = 0x00000004,
|
||||
MULTITOUCH_POINTER_MASK = 0x0000ff00,
|
||||
MULTITOUCH_POINTER_SHIFT = 0x00000008,
|
||||
MULTITOUCH_ACTION_MASK = 0x000000ff,
|
||||
MULTITOUCH_FORCE_32BITS = 0x7fffffff
|
||||
MULTITOUCH_CANCEL = 0x00000004
|
||||
};
|
||||
|
||||
void ShowAllSearchResultsImpl()
|
||||
|
|
|
@ -14,6 +14,11 @@ public abstract class RenderActivity extends MWMFragmentActivity
|
|||
implements View.OnTouchListener,
|
||||
SurfaceHolder.Callback
|
||||
{
|
||||
// Should be equal to values from Framework.cpp MultiTouchAction enum
|
||||
private static final int NATIVE_ACTION_UP = 0x1;
|
||||
private static final int NATIVE_ACTION_DOWN = 0x2;
|
||||
private static final int NATIVE_ACTION_MOVE = 0x3;
|
||||
private static final int NATIVE_ACTION_CANCEL = 0x4;
|
||||
private int mLastPointerId = 0;
|
||||
private SurfaceHolder mSurfaceHolder = null;
|
||||
private int m_displayDensity = 0;
|
||||
|
@ -69,6 +74,23 @@ public abstract class RenderActivity extends MWMFragmentActivity
|
|||
if (count == 0)
|
||||
return super.onTouchEvent(event);
|
||||
|
||||
int action = event.getAction();
|
||||
switch (action)
|
||||
{
|
||||
case MotionEvent.ACTION_UP:
|
||||
action = NATIVE_ACTION_UP;
|
||||
break;
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
action = NATIVE_ACTION_DOWN;
|
||||
break;
|
||||
case MotionEvent.ACTION_MOVE:
|
||||
action = NATIVE_ACTION_MOVE;
|
||||
break;
|
||||
case MotionEvent.ACTION_CANCEL:
|
||||
action = NATIVE_ACTION_CANCEL;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (count)
|
||||
{
|
||||
case 1:
|
||||
|
@ -78,7 +100,7 @@ public abstract class RenderActivity extends MWMFragmentActivity
|
|||
final float x0 = event.getX();
|
||||
final float y0 = event.getY();
|
||||
|
||||
return OnTouch(event.getAction(), true, false, x0, y0, 0, 0);
|
||||
return OnTouch(action, true, false, x0, y0, 0, 0);
|
||||
}
|
||||
default:
|
||||
{
|
||||
|
@ -89,9 +111,9 @@ public abstract class RenderActivity extends MWMFragmentActivity
|
|||
final float y1 = event.getY(1);
|
||||
|
||||
if (event.getPointerId(0) == mLastPointerId)
|
||||
return OnTouch(event.getAction(), true, true, x0, y0, x1, y1);
|
||||
return OnTouch(action, true, true, x0, y0, x1, y1);
|
||||
else
|
||||
return OnTouch(event.getAction(), true, true, x1, y1, x0, y0);
|
||||
return OnTouch(action, true, true, x1, y1, x0, y0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue