diff options
-rw-r--r-- | services/java/com/android/server/InputDevice.java | 6 | ||||
-rw-r--r-- | services/java/com/android/server/KeyInputQueue.java | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/services/java/com/android/server/InputDevice.java b/services/java/com/android/server/InputDevice.java index eaad3b7..6eb6242 100644 --- a/services/java/com/android/server/InputDevice.java +++ b/services/java/com/android/server/InputDevice.java @@ -65,6 +65,7 @@ public class InputDevice { // This is the last generated pointer data, ordered to match // mPointerIds. + boolean mSkipLastPointers; int mLastNumPointers = 0; final int[] mLastData = new int[MotionEvent.NUM_SAMPLE_DATA * MAX_POINTERS]; @@ -511,6 +512,11 @@ public class InputDevice { long curTimeNano, Display display, int orientation, int metaState) { + if (mSkipLastPointers) { + mSkipLastPointers = false; + mLastNumPointers = 0; + } + if (mNextNumPointers <= 0 && mLastNumPointers <= 0) { return null; } diff --git a/services/java/com/android/server/KeyInputQueue.java b/services/java/com/android/server/KeyInputQueue.java index 5d65c71..d68ccfa 100644 --- a/services/java/com/android/server/KeyInputQueue.java +++ b/services/java/com/android/server/KeyInputQueue.java @@ -689,7 +689,8 @@ public abstract class KeyInputQueue { ev, curTime, curTimeNano); if (doMotion && ms.mNextNumPointers > 0 - && ms.mLastNumPointers == 0) { + && (ms.mLastNumPointers == 0 + || ms.mSkipLastPointers)) { doMotion = !generateVirtualKeyDown(di, ev, curTime, curTimeNano); } @@ -703,7 +704,7 @@ public abstract class KeyInputQueue { me = ms.generateAbsMotion(di, curTime, curTimeNano, mDisplay, mOrientation, mGlobalMetaState); - if (false) Log.v(TAG, "Absolute: x=" + if (DEBUG_POINTERS) Log.v(TAG, "Absolute: x=" + di.mAbs.mNextData[MotionEvent.SAMPLE_X] + " y=" + di.mAbs.mNextData[MotionEvent.SAMPLE_Y] @@ -729,6 +730,7 @@ public abstract class KeyInputQueue { ms.mLastData, 0, num * MotionEvent.NUM_SAMPLE_DATA); ms.mLastNumPointers = num; + ms.mSkipLastPointers = true; } ms.finish(); |