am 5a40dcaf: Release previously pressed key even when the up event points new key

* commit '5a40dcaf8b6250eeea241471e54e8fe856cdf19b':
  Release previously pressed key even when the up event points new key
main
Tadashi G. Takaoka 2012-05-09 10:12:49 -07:00 committed by Android Git Automerger
commit c3f3cbfc76
1 changed files with 7 additions and 16 deletions

View File

@ -606,7 +606,7 @@ public class PointerTracker {
if (ProductionFlag.IS_EXPERIMENTAL) {
ResearchLogger.pointerTracker_onMoveEvent(x, y, lastX, lastY);
}
onUpEventInternal(lastX, lastY, eventTime);
onUpEventInternal();
onDownEventInternal(x, y, eventTime);
} else {
mKeyAlreadyProcessed = true;
@ -646,7 +646,7 @@ public class PointerTracker {
}
queue.remove(this);
}
onUpEventInternal(x, y, eventTime);
onUpEventInternal();
}
// Let this pointer tracker know that one of newer-than-this pointer trackers got an up event.
@ -655,24 +655,15 @@ public class PointerTracker {
public void onPhantomUpEvent(int x, int y, long eventTime) {
if (DEBUG_EVENT)
printTouchEvent("onPhntEvent:", x, y, eventTime);
onUpEventInternal(x, y, eventTime);
onUpEventInternal();
mKeyAlreadyProcessed = true;
}
private void onUpEventInternal(int x, int y, long eventTime) {
private void onUpEventInternal() {
mTimerProxy.cancelKeyTimers();
mIsInSlidingKeyInput = false;
final int keyX, keyY;
if (isMajorEnoughMoveToBeOnNewKey(x, y, onMoveKey(x, y))) {
keyX = x;
keyY = y;
} else {
// Use previous fixed key coordinates.
keyX = mKeyX;
keyY = mKeyY;
}
final Key key = onUpKey(keyX, keyY, eventTime);
setReleasedKeyGraphics(key);
// Release the last pressed key.
setReleasedKeyGraphics(mCurrentKey);
if (mIsShowingMoreKeysPanel) {
mDrawingProxy.dismissMoreKeysPanel();
mIsShowingMoreKeysPanel = false;
@ -680,7 +671,7 @@ public class PointerTracker {
if (mKeyAlreadyProcessed)
return;
if (!mIsRepeatableKey) {
detectAndSendKey(key, keyX, keyY);
detectAndSendKey(mCurrentKey, mKeyX, mKeyY);
}
}