Make the primary character stable
Bug: 4343280
Change-Id: I3e6eaa3803dc32a837825f3a64403430721b6192
diff --git a/java/src/com/android/inputmethod/keyboard/KeyDetector.java b/java/src/com/android/inputmethod/keyboard/KeyDetector.java
index d342c6d..c2ad56d 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyDetector.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyDetector.java
@@ -265,9 +265,9 @@
for (final Key key: mKeyboard.getNearestKeys(touchX, touchY)) {
final boolean isOnKey = key.isOnKey(touchX, touchY);
final int distance = key.squaredDistanceToEdge(touchX, touchY);
- // TODO: need to take care of hitbox overlaps
+ // To take care of hitbox overlaps, we compare mCode here too.
if (primaryKey == null || distance < minDistance
- || (distance == minDistance && isOnKey)) {
+ || (distance == minDistance && isOnKey && key.mCode > primaryKey.mCode)) {
minDistance = distance;
primaryKey = key;
}