diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index a8b4da14c1c55..fe83663d1ba5b 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -7087,7 +7087,11 @@ public final class ViewRootImpl implements ViewParent, final MotionEvent event = (MotionEvent)q.mEvent; final int source = event.getSource(); if ((source & InputDevice.SOURCE_CLASS_TRACKBALL) != 0) { - mTrackball.process(event); + // Do not synthesize events for relative mouse movement. If apps opt into + // relative mouse movement they must be prepared to handle the events. + if (!event.isFromSource(InputDevice.SOURCE_MOUSE_RELATIVE)) { + mTrackball.process(event); + } return FINISH_HANDLED; } else if ((source & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) { mJoystick.process(event);