diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/res/xml-sw600dp/keys_f1f2.xml | 2 | ||||
-rw-r--r-- | java/res/xml-sw600dp/rows_number_password.xml | 26 | ||||
-rw-r--r-- | java/res/xml/rows_number_password.xml | 32 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/Keyboard.java | 14 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/KeyboardView.java | 3 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 5 |
6 files changed, 60 insertions, 22 deletions
diff --git a/java/res/xml-sw600dp/keys_f1f2.xml b/java/res/xml-sw600dp/keys_f1f2.xml index 9d2968720..721bfc722 100644 --- a/java/res/xml-sw600dp/keys_f1f2.xml +++ b/java/res/xml-sw600dp/keys_f1f2.xml @@ -27,7 +27,7 @@ > <Key latin:keyStyle="comKeyStyle" - latin:keyWidth="17.0%p" /> + latin:keyWidth="18.0%p" /> </case> <default> <switch> diff --git a/java/res/xml-sw600dp/rows_number_password.xml b/java/res/xml-sw600dp/rows_number_password.xml index 36f4bba46..6c3855a01 100644 --- a/java/res/xml-sw600dp/rows_number_password.xml +++ b/java/res/xml-sw600dp/rows_number_password.xml @@ -31,9 +31,8 @@ latin:keyStyle="num2KeyStyle" /> <Key latin:keyStyle="num3KeyStyle" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyXPos="-16%p" + <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> + <Spacer latin:keyWidth="fillRight" /> </Row> <Row> @@ -46,9 +45,8 @@ latin:keyStyle="num5KeyStyle" /> <Key latin:keyStyle="num6KeyStyle" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyXPos="-16%p" + <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> + <Spacer latin:keyWidth="fillRight" /> </Row> <Row> @@ -62,17 +60,21 @@ <Key latin:keyStyle="num9KeyStyle" /> <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> - <Spacer /> + <Spacer + latin:keyWidth="fillRight" /> </Row> <Row> <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> <Spacer - latin:keyWidth="41%p" /> + latin:keyWidth="23%p" /> + <Key + latin:keyStyle="deleteKeyStyle" /> <Key latin:keyStyle="num0KeyStyle" /> - <include - latin:keyXPos="-10%p" - latin:keyWidth="fillRight" - latin:keyboardLayout="@xml/key_shortcut" /> + <Key + latin:keyStyle="enterKeyStyle" /> + <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> + <Spacer + latin:keyWidth="fillRight" /> </Row> </merge> diff --git a/java/res/xml/rows_number_password.xml b/java/res/xml/rows_number_password.xml index e4272ed3f..2e61a08ae 100644 --- a/java/res/xml/rows_number_password.xml +++ b/java/res/xml/rows_number_password.xml @@ -22,41 +22,59 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <Row> + <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> + <Spacer + latin:keyWidth="10%p" /> <Key latin:keyStyle="num1KeyStyle" /> <Key latin:keyStyle="num2KeyStyle" /> <Key latin:keyStyle="num3KeyStyle" /> - <Spacer /> + <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> + <Spacer + latin:keyWidth="fillRight" /> </Row> <Row> + <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> + <Spacer + latin:keyWidth="10%p" /> <Key latin:keyStyle="num4KeyStyle" /> <Key latin:keyStyle="num5KeyStyle" /> <Key latin:keyStyle="num6KeyStyle" /> - <Spacer /> + <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> + <Spacer + latin:keyWidth="fillRight" /> </Row> <Row> + <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> + <Spacer + latin:keyWidth="10%p" /> <Key latin:keyStyle="num7KeyStyle" /> <Key latin:keyStyle="num8KeyStyle" /> <Key latin:keyStyle="num9KeyStyle" /> - <Key - latin:keyStyle="deleteKeyStyle" + <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> + <Spacer latin:keyWidth="fillRight" /> </Row> <Row> - <Spacer /> + <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> + <Spacer + latin:keyWidth="10%p" /> + <Key + latin:keyStyle="deleteKeyStyle" /> <Key latin:keyStyle="num0KeyStyle" /> - <Spacer /> <Key - latin:keyStyle="enterKeyStyle" + latin:keyStyle="enterKeyStyle" /> + <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> + <Spacer latin:keyWidth="fillRight" /> </Row> </merge> diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java index bd3b0e114..0be4cf3a7 100644 --- a/java/src/com/android/inputmethod/keyboard/Keyboard.java +++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java @@ -197,6 +197,20 @@ public class Keyboard { return null; } + public boolean hasKey(Key aKey) { + if (mKeyCache.containsKey(aKey)) { + return true; + } + + for (final Key key : mKeys) { + if (key == aKey) { + mKeyCache.put(key.mCode, key); + return true; + } + } + return false; + } + public static boolean isLetterCode(int code) { return code >= MINIMUM_LETTER_CODE; } diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index c0d5b6772..cc0a1fb10 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -487,6 +487,9 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { } else { // Draw invalidated keys. for (final Key key : mInvalidatedKeys) { + if (!mKeyboard.hasKey(key)) { + continue; + } final int x = key.mX + getPaddingLeft(); final int y = key.mY + getPaddingTop(); mInvalidatedKeysRect.set(x, y, x + key.mWidth, y + key.mHeight); diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index b59e939b7..261755f53 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -1298,8 +1298,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen break; } switcher.onCodeInput(primaryCode); - // Reset after any single keystroke - if (!didAutoCorrect) + // Reset after any single keystroke, except shift and symbol-shift + if (!didAutoCorrect && primaryCode != Keyboard.CODE_SHIFT + && primaryCode != Keyboard.CODE_SWITCH_ALPHA_SYMBOL) mLastComposedWord.deactivate(); mEnteredText = null; } |