Merge "DO NOT MERGE Remove Pointer Capture API." into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
d48a67a190
@@ -79,15 +79,6 @@ class TouchSurfaceView extends GLSurfaceView {
|
|||||||
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
|
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
|
||||||
// Release pointer capture on any key press.
|
|
||||||
if (event.getAction() == KeyEvent.ACTION_DOWN && hasPointerCapture()) {
|
|
||||||
releasePointerCapture();
|
|
||||||
}
|
|
||||||
return super.onKeyDown(keyCode, event);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override public boolean onTrackballEvent(MotionEvent e) {
|
@Override public boolean onTrackballEvent(MotionEvent e) {
|
||||||
mRenderer.mAngleX += e.getX() * TRACKBALL_SCALE_FACTOR;
|
mRenderer.mAngleX += e.getX() * TRACKBALL_SCALE_FACTOR;
|
||||||
mRenderer.mAngleY += e.getY() * TRACKBALL_SCALE_FACTOR;
|
mRenderer.mAngleY += e.getY() * TRACKBALL_SCALE_FACTOR;
|
||||||
@@ -95,34 +86,9 @@ class TouchSurfaceView extends GLSurfaceView {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public boolean onHoverEvent(MotionEvent e) {
|
|
||||||
if (hasPointerCapture()) {
|
|
||||||
switch (e.getAction()) {
|
|
||||||
case MotionEvent.ACTION_HOVER_MOVE:
|
|
||||||
case MotionEvent.ACTION_HOVER_EXIT:
|
|
||||||
case MotionEvent.ACTION_HOVER_ENTER:
|
|
||||||
updateAngles(e);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return super.onHoverEvent(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override public boolean onTouchEvent(MotionEvent e) {
|
@Override public boolean onTouchEvent(MotionEvent e) {
|
||||||
switch (e.getAction()) {
|
if (e.getActionMasked() == MotionEvent.ACTION_MOVE) {
|
||||||
case MotionEvent.ACTION_DOWN:
|
|
||||||
if (e.isFromSource(InputDevice.SOURCE_MOUSE)) {
|
|
||||||
if (hasPointerCapture()) {
|
|
||||||
releasePointerCapture();
|
|
||||||
} else {
|
|
||||||
requestPointerCapture();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MotionEvent.ACTION_MOVE:
|
|
||||||
updateAngles(e);
|
updateAngles(e);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
mPreviousX = e.getX();
|
mPreviousX = e.getX();
|
||||||
mPreviousY = e.getY();
|
mPreviousY = e.getY();
|
||||||
@@ -130,14 +96,8 @@ class TouchSurfaceView extends GLSurfaceView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateAngles(MotionEvent e) {
|
private void updateAngles(MotionEvent e) {
|
||||||
float dx, dy;
|
float dx = e.getX() - mPreviousX;
|
||||||
if (e.isFromSource(InputDevice.SOURCE_MOUSE) && hasPointerCapture()) {
|
float dy = e.getY() - mPreviousY;
|
||||||
dx = e.getAxisValue(MotionEvent.AXIS_RELATIVE_X);
|
|
||||||
dy = e.getAxisValue(MotionEvent.AXIS_RELATIVE_Y);
|
|
||||||
} else {
|
|
||||||
dx = e.getX() - mPreviousX;
|
|
||||||
dy = e.getY() - mPreviousY;
|
|
||||||
}
|
|
||||||
if (dx != 0 && dy != 0) {
|
if (dx != 0 && dy != 0) {
|
||||||
mRenderer.mAngleX += dx * TOUCH_SCALE_FACTOR;
|
mRenderer.mAngleX += dx * TOUCH_SCALE_FACTOR;
|
||||||
mRenderer.mAngleY += dy * TOUCH_SCALE_FACTOR;
|
mRenderer.mAngleY += dy * TOUCH_SCALE_FACTOR;
|
||||||
|
|||||||
Reference in New Issue
Block a user