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;
             }