From 8d165bb5d19a266b126b52907db8d7f9e384c7e4 Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Thu, 28 Apr 2011 21:47:13 +0900 Subject: [PATCH] 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 --- java/src/com/android/inputmethod/keyboard/KeyDetector.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/src/com/android/inputmethod/keyboard/KeyDetector.java b/java/src/com/android/inputmethod/keyboard/KeyDetector.java index 2eeae96b2..4d3c3422a 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyDetector.java +++ b/java/src/com/android/inputmethod/keyboard/KeyDetector.java @@ -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; } }