Fix a bug where dead space would appear on the keyboard.
This change fixes a bug where there would be pixels on the keyboard
that would not return a key although it's between two keys - or even
right on top of one.
This change makes it so that the closest key to the touch - within a
certain threshold - is always returned, regardless of whether the
touch is inside or not.
Bug: 4348994
Change-Id: I8f6102d6787eb025cc3c50a26d3a475aeafc4b64
diff --git a/java/src/com/android/inputmethod/keyboard/KeyDetector.java b/java/src/com/android/inputmethod/keyboard/KeyDetector.java
index 2eeae96..4d3c342 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyDetector.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyDetector.java
@@ -174,11 +174,12 @@
int primaryIndex = NOT_A_KEY;
for (final int index : mKeyboard.getNearestKeys(touchX, touchY)) {
final Key key = keys.get(index);
+ // TODO: should be okay to skip calling isInside()
final boolean isInside = mKeyboard.isInside(key, touchX, touchY);
final int distance = key.squaredDistanceToEdge(touchX, touchY);
if (isInside || (mProximityCorrectOn && distance < mProximityThresholdSquare)) {
final int insertedPosition = sortNearbyKeys(index, distance);
- if (insertedPosition == 0 && isInside)
+ if (insertedPosition == 0)
primaryIndex = index;
}
}