Disable long press timer while sliding input mode

Bug: 8915171
Change-Id: Id8685f90766c7de55b56476de83abf97150a186d
main
Tadashi G. Takaoka 2013-05-13 15:05:37 +09:00
parent 18184eacb1
commit 43ad100d8b
3 changed files with 11 additions and 5 deletions

View File

@ -105,7 +105,7 @@ public class Key implements Comparable<Key> {
/** Hit bounding box of the key */ /** Hit bounding box of the key */
public final Rect mHitBox = new Rect(); public final Rect mHitBox = new Rect();
/** More keys */ /** More keys. It is guaranteed that this is null or an array of one or more elements */
public final MoreKeySpec[] mMoreKeys; public final MoreKeySpec[] mMoreKeys;
/** More keys column number and flags */ /** More keys column number and flags */
private final int mMoreKeysColumnAndFlags; private final int mMoreKeysColumnAndFlags;

View File

@ -497,7 +497,7 @@ public class KeyboardView extends View {
} }
} }
if (key.hasPopupHint() && key.mMoreKeys != null && key.mMoreKeys.length > 0) { if (key.hasPopupHint() && key.mMoreKeys != null) {
drawKeyPopupHint(key, canvas, paint, params); drawKeyPopupHint(key, canvas, paint, params);
} }
} }

View File

@ -1303,9 +1303,15 @@ public final class PointerTracker implements PointerTrackerQueue.Element {
} }
private void startLongPressTimer(final Key key) { private void startLongPressTimer(final Key key) {
if (key != null && key.isLongPressEnabled() && !sInGesture) { if (sInGesture) return;
mTimerProxy.startLongPressTimer(this); if (key == null) return;
} if (!key.isLongPressEnabled()) return;
// Caveat: Please note that isLongPressEnabled() can be true even if the current 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
// whether or not we are in the sliding input mode.
if (mIsInSlidingKeyInputFromModifier && key.mMoreKeys == null) return;
mTimerProxy.startLongPressTimer(this);
} }
private void detectAndSendKey(final Key key, final int x, final int y, final long eventTime) { private void detectAndSendKey(final Key key, final int x, final int y, final long eventTime) {