From 350fab6dc4d4d4aec272056004cbb5c039f5bf37 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Thu, 13 Sep 2012 18:54:30 +0900 Subject: [PATCH] Fix gesture floating preview on up event This is a follow up of Iddb26ba1. Bug: 7119032 Change-Id: Ibbc94a1a4880ca31bd8aeece89893691b14acc4d --- .../inputmethod/keyboard/PointerTracker.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java index e762b23c6..2417d6e96 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java @@ -545,12 +545,15 @@ public class PointerTracker implements PointerTrackerQueue.Element { } private void startBatchInput() { - if (DEBUG_LISTENER) { - Log.d(TAG, "onStartBatchInput"); + if (!sInGesture && mGestureStrokeWithPreviewTrail.isStartOfAGesture()) { + if (DEBUG_LISTENER) { + Log.d(TAG, "onStartBatchInput"); + } + sInGesture = true; + mListener.onStartBatchInput(); } - sInGesture = true; - mListener.onStartBatchInput(); - mDrawingProxy.showGesturePreviewTrail(this, true /* isOldestTracker */); + final boolean isOldestTracker = sPointerTrackerQueue.getOldestElement() == this; + mDrawingProxy.showGesturePreviewTrail(this, isOldestTracker); } private void updateBatchInput(final long eventTime) { @@ -585,7 +588,8 @@ public class PointerTracker implements PointerTrackerQueue.Element { clearBatchInputPointsOfAllPointerTrackers(); } } - mDrawingProxy.showGesturePreviewTrail(this, true /* isOldestTracker */); + final boolean isOldestTracker = sPointerTrackerQueue.getOldestElement() == this; + mDrawingProxy.showGesturePreviewTrail(this, isOldestTracker); } private static void abortBatchInput() { @@ -721,12 +725,8 @@ public class PointerTracker implements PointerTrackerQueue.Element { final boolean isHistorical, final Key key) { final int gestureTime = (int)(eventTime - sGestureFirstDownTime); if (mIsDetectingGesture) { - final GestureStroke stroke = mGestureStrokeWithPreviewTrail; - stroke.addPoint(x, y, gestureTime, isHistorical); - if (!sInGesture && stroke.isStartOfAGesture()) { - startBatchInput(); - } - + mGestureStrokeWithPreviewTrail.addPoint(x, y, gestureTime, isHistorical); + startBatchInput(); if (sInGesture && key != null) { updateBatchInput(eventTime); }