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: I8f6102d6787eb025cc3c50a26d3a475aeafc4b64main
parent
d8f52a4f18
commit
8d165bb5d1
|
@ -174,11 +174,12 @@ public class KeyDetector {
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue