diff options
author | 2012-03-14 19:49:13 +0900 | |
---|---|---|
committer | 2012-03-14 20:17:42 +0900 | |
commit | 6bc9186457219daeb3734531a01271b0e4fa37fb (patch) | |
tree | 52066a742b18906fa5e23bdaaf99f1ae2f5b2cb6 /java/src | |
parent | 3848ca6729da79803b4829cea6986762c5e1f680 (diff) | |
download | latinime-6bc9186457219daeb3734531a01271b0e4fa37fb.tar.gz latinime-6bc9186457219daeb3734531a01271b0e4fa37fb.tar.xz latinime-6bc9186457219daeb3734531a01271b0e4fa37fb.zip |
Disabled key should respond if it is in the altCodeWhileTyping state
Bug: 6128215
Change-Id: I81e9980f8ffa5c5eaba30676c8433f542645de1d
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/PointerTracker.java | 21 |
2 files changed, 16 insertions, 7 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java index df8a10a35..97f4d07d9 100644 --- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java @@ -908,7 +908,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke @Override protected void onDrawKeyTopVisuals(Key key, Canvas canvas, Paint paint, KeyDrawParams params) { - if (key.altCodeWhileTyping()) { + if (key.altCodeWhileTyping() && key.isEnabled()) { params.mAnimAlpha = mAltCodeKeyWhileTypingAnimAlpha; } if (key.mCode == Keyboard.CODE_SPACE) { diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java index ea97ba851..ed889712a 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java @@ -251,18 +251,19 @@ public class PointerTracker { // primaryCode is different from {@link Key#mCode}. private void callListenerOnCodeInput(Key key, int primaryCode, int x, int y) { final boolean ignoreModifierKey = mIgnoreModifierKey && key.isModifier(); - final boolean alterCode = key.altCodeWhileTyping() && mTimerProxy.isTypingState(); - final int code = alterCode ? key.mAltCode : primaryCode; + final boolean altersCode = key.altCodeWhileTyping() && mTimerProxy.isTypingState(); + final int code = altersCode ? key.mAltCode : primaryCode; if (DEBUG_LISTENER) { Log.d(TAG, "onCodeInput: " + Keyboard.printableCode(code) + " text=" + key.mOutputText + " x=" + x + " y=" + y - + " ignoreModifier=" + ignoreModifierKey + " alterCode=" + alterCode + + " ignoreModifier=" + ignoreModifierKey + " altersCode=" + altersCode + " enabled=" + key.isEnabled()); } if (ignoreModifierKey) { return; } - if (key.isEnabled()) { + // Even if the key is disabled, it should respond if it is in the altCodeWhileTyping state. + if (key.isEnabled() || altersCode) { if (code == Keyboard.CODE_OUTPUT_TEXT) { mListener.onTextInput(key.mOutputText); } else if (code != Keyboard.CODE_UNSPECIFIED) { @@ -322,10 +323,11 @@ public class PointerTracker { private void setReleasedKeyGraphics(Key key) { mDrawingProxy.dismissKeyPreview(this); - if (key == null || !key.isEnabled()) { + if (key == null) { return; } + // Even if the key is disabled, update the key release graphics just in case. updateReleaseKeyGraphics(key); if (key.isShift()) { @@ -351,7 +353,14 @@ public class PointerTracker { } private void setPressedKeyGraphics(Key key) { - if (key == null || !key.isEnabled()) { + if (key == null) { + return; + } + + // Even if the key is disabled, it should respond if it is in the altCodeWhileTyping state. + final boolean altersCode = key.altCodeWhileTyping() && mTimerProxy.isTypingState(); + final boolean needsToUpdateGraphics = key.isEnabled() || altersCode; + if (!needsToUpdateGraphics) { return; } |