From 3f00c6151fb7140fb7752bad3b978daacd9ec5aa Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Tue, 4 Sep 2012 14:50:56 +0900 Subject: [PATCH] Reduce amount of empty space in which keypresses are detected Bug: 6942329 Change-Id: Ie92ccf43f307b8ceb9a311c30390d0cb2abf2cd7 --- java/res/xml-sw600dp/row_symbols4.xml | 4 +++- java/res/xml-sw600dp/row_symbols_shift4.xml | 4 +++- java/res/xml-sw600dp/rows_number_normal.xml | 3 +++ java/res/xml-sw768dp/row_dvorak4.xml | 7 ++++++- java/res/xml-sw768dp/row_hebrew4.xml | 7 ++++++- java/res/xml-sw768dp/row_qwerty4.xml | 7 ++++++- java/res/xml-sw768dp/row_symbols4.xml | 8 ++++++-- java/res/xml-sw768dp/row_symbols_shift4.xml | 9 ++++++--- java/res/xml-sw768dp/rows_number_normal.xml | 3 +++ .../android/inputmethod/keyboard/KeyDetector.java | 12 +++++++++--- 10 files changed, 51 insertions(+), 13 deletions(-) diff --git a/java/res/xml-sw600dp/row_symbols4.xml b/java/res/xml-sw600dp/row_symbols4.xml index 73a5b1703..f138d8ef4 100644 --- a/java/res/xml-sw600dp/row_symbols4.xml +++ b/java/res/xml-sw600dp/row_symbols4.xml @@ -41,6 +41,8 @@ latin:moreKeys="!text/more_keys_for_tablet_double_quote" /> - + + diff --git a/java/res/xml-sw600dp/row_symbols_shift4.xml b/java/res/xml-sw600dp/row_symbols_shift4.xml index 6f3aac7c6..29befa92a 100644 --- a/java/res/xml-sw600dp/row_symbols_shift4.xml +++ b/java/res/xml-sw600dp/row_symbols_shift4.xml @@ -33,6 +33,8 @@ latin:keyXPos="28.0%p" latin:keyboardLayout="@xml/key_space" latin:backgroundType="normal" /> - + + diff --git a/java/res/xml-sw600dp/rows_number_normal.xml b/java/res/xml-sw600dp/rows_number_normal.xml index 48b304089..f69239456 100644 --- a/java/res/xml-sw600dp/rows_number_normal.xml +++ b/java/res/xml-sw600dp/rows_number_normal.xml @@ -153,5 +153,8 @@ + + diff --git a/java/res/xml-sw768dp/row_dvorak4.xml b/java/res/xml-sw768dp/row_dvorak4.xml index 0827815c9..8f9230d4a 100644 --- a/java/res/xml-sw768dp/row_dvorak4.xml +++ b/java/res/xml-sw768dp/row_dvorak4.xml @@ -25,8 +25,10 @@ latin:keyWidth="8.047%p" latin:backgroundType="functional" > + + @@ -42,5 +44,8 @@ latin:keyboardLayout="@xml/key_dash" /> + + diff --git a/java/res/xml-sw768dp/row_hebrew4.xml b/java/res/xml-sw768dp/row_hebrew4.xml index 180c5641d..ae14f0296 100644 --- a/java/res/xml-sw768dp/row_hebrew4.xml +++ b/java/res/xml-sw768dp/row_hebrew4.xml @@ -25,8 +25,10 @@ latin:keyWidth="8.047%p" latin:backgroundType="functional" > + + @@ -40,5 +42,8 @@ latin:keyboardLayout="@xml/keys_comma_period" /> + + diff --git a/java/res/xml-sw768dp/row_qwerty4.xml b/java/res/xml-sw768dp/row_qwerty4.xml index 92411f54e..f1f4214ca 100644 --- a/java/res/xml-sw768dp/row_qwerty4.xml +++ b/java/res/xml-sw768dp/row_qwerty4.xml @@ -25,8 +25,10 @@ latin:keyWidth="8.047%p" latin:backgroundType="functional" > + + @@ -42,5 +44,8 @@ latin:keyboardLayout="@xml/key_dash" /> + + diff --git a/java/res/xml-sw768dp/row_symbols4.xml b/java/res/xml-sw768dp/row_symbols4.xml index 4e1c11994..b801a12a7 100644 --- a/java/res/xml-sw768dp/row_symbols4.xml +++ b/java/res/xml-sw768dp/row_symbols4.xml @@ -25,8 +25,10 @@ latin:keyWidth="8.047%p" latin:backgroundType="functional" > + + @@ -39,6 +41,8 @@ latin:moreKeys="!text/more_keys_for_tablet_double_quote" /> - + + diff --git a/java/res/xml-sw768dp/row_symbols_shift4.xml b/java/res/xml-sw768dp/row_symbols_shift4.xml index 561351cab..f71864bc3 100644 --- a/java/res/xml-sw768dp/row_symbols_shift4.xml +++ b/java/res/xml-sw768dp/row_symbols_shift4.xml @@ -25,11 +25,14 @@ latin:keyWidth="8.047%p" latin:backgroundType="functional" > - + + - + + diff --git a/java/res/xml-sw768dp/rows_number_normal.xml b/java/res/xml-sw768dp/rows_number_normal.xml index 84910a88f..d4d7c722a 100644 --- a/java/res/xml-sw768dp/rows_number_normal.xml +++ b/java/res/xml-sw768dp/rows_number_normal.xml @@ -168,5 +168,8 @@ + + diff --git a/java/src/com/android/inputmethod/keyboard/KeyDetector.java b/java/src/com/android/inputmethod/keyboard/KeyDetector.java index 868c8cab5..f5686dcda 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyDetector.java +++ b/java/src/com/android/inputmethod/keyboard/KeyDetector.java @@ -83,11 +83,17 @@ public class KeyDetector { int minDistance = Integer.MAX_VALUE; Key primaryKey = null; for (final Key key: mKeyboard.getNearestKeys(touchX, touchY)) { - final boolean isOnKey = key.isOnKey(touchX, touchY); + // An edge key always has its enlarged hitbox to respond to an event that occurred in + // the empty area around the key. (@see Key#markAsLeftEdge(KeyboardParams)} etc.) + if (!key.isOnKey(touchX, touchY)) { + continue; + } final int distance = key.squaredDistanceToEdge(touchX, touchY); + if (distance > minDistance) { + continue; + } // To take care of hitbox overlaps, we compare mCode here too. - if (primaryKey == null || distance < minDistance - || (distance == minDistance && isOnKey && key.mCode > primaryKey.mCode)) { + if (primaryKey == null || distance < minDistance || key.mCode > primaryKey.mCode) { minDistance = distance; primaryKey = key; }