Merge "Disable functional key while in sliding input mode"

main
Tadashi G. Takaoka 2013-05-13 10:50:32 +00:00 committed by Android (Google) Code Review
commit 5f857a359a
1 changed files with 7 additions and 4 deletions

View File

@ -1168,6 +1168,7 @@ public final class PointerTracker implements PointerTrackerQueue.Element {
private void onUpEventInternal(final int x, final int y, final long eventTime) { private void onUpEventInternal(final int x, final int y, final long eventTime) {
mTimerProxy.cancelKeyTimers(); mTimerProxy.cancelKeyTimers();
final boolean isInSlidingKeyInput = mIsInSlidingKeyInput;
resetSlidingKeyInput(); resetSlidingKeyInput();
mIsDetectingGesture = false; mIsDetectingGesture = false;
final Key currentKey = mCurrentKey; final Key currentKey = mCurrentKey;
@ -1197,9 +1198,11 @@ public final class PointerTracker implements PointerTrackerQueue.Element {
if (mIsTrackingForActionDisabled) { if (mIsTrackingForActionDisabled) {
return; return;
} }
if (currentKey != null && !currentKey.isRepeatable()) { if (currentKey != null && currentKey.isRepeatable() && !isInSlidingKeyInput) {
detectAndSendKey(currentKey, mKeyX, mKeyY, eventTime); // Repeatable key has been registered in {@link #onDownEventInternal(int,int,long)}.
return;
} }
detectAndSendKey(currentKey, mKeyX, mKeyY, eventTime);
} }
public void onShowMoreKeysPanel(final int translatedX, final int translatedY, public void onShowMoreKeysPanel(final int translatedX, final int translatedY,
@ -1251,7 +1254,7 @@ public final class PointerTracker implements PointerTrackerQueue.Element {
if (key == null) return; if (key == null) return;
if (!key.isRepeatable()) return; if (!key.isRepeatable()) return;
// Don't start key repeat when we are in sliding input mode. // Don't start key repeat when we are in sliding input mode.
if (mIsInSlidingKeyInputFromModifier) return; if (mIsInSlidingKeyInput) return;
onRegisterKey(key); onRegisterKey(key);
mTimerProxy.startKeyRepeatTimer(this); mTimerProxy.startKeyRepeatTimer(this);
} }
@ -1313,7 +1316,7 @@ public final class PointerTracker implements PointerTrackerQueue.Element {
// doesn't have its more keys. (e.g. spacebar, globe key) // doesn't have its more keys. (e.g. spacebar, globe key)
// We always need to start the long press timer if the key has its more keys regardless of // We always need to start the long press timer if the key has its more keys regardless of
// whether or not we are in the sliding input mode. // whether or not we are in the sliding input mode.
if (mIsInSlidingKeyInputFromModifier && key.mMoreKeys == null) return; if (mIsInSlidingKeyInput && key.mMoreKeys == null) return;
mTimerProxy.startLongPressTimer(this); mTimerProxy.startLongPressTimer(this);
} }