diff options
| author | George Mount <mount@google.com> | 2012-02-22 16:02:30 -0800 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-02-22 16:02:30 -0800 |
| commit | 49cc3d98e296d115f1816b8a96b8ff713cf7abe3 (patch) | |
| tree | 672d358443fe674b5767805a712574e7220e40ae /core/java/android/webkit/WebView.java | |
| parent | 77d9ee4df6098e78ce034fa80f046f3b42de8cb3 (diff) | |
| parent | 3c30d145602261a1c33f39ab143146b511e8b564 (diff) | |
Merge "Changes that don't map to keys sent as text changes."
Diffstat (limited to 'core/java/android/webkit/WebView.java')
| -rw-r--r-- | core/java/android/webkit/WebView.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 71d162779e85..bb148f4fa0ee 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -552,13 +552,17 @@ public class WebView extends AbsoluteLayout && TextUtils.regionMatches(text, 0, original, 0, textLength); } + boolean sendChange = false; if (isCharacterAdd) { - sendCharacter(text.charAt(textLength - 1)); + sendChange = !sendCharacter(text.charAt(textLength - 1)); } else if (isCharacterDelete) { sendDeleteKey(); - } else if (textLength != originalLength || - !TextUtils.regionMatches(text, 0, original, 0, - textLength)) { + } else { + sendChange = (textLength != originalLength) || + !TextUtils.regionMatches(text, 0, original, 0, + textLength); + } + if (sendChange) { // Send a message so that key strokes and text replacement // do not come out of order. Message replaceMessage = mPrivateHandler.obtainMessage( @@ -572,18 +576,20 @@ public class WebView extends AbsoluteLayout * Send a single character to the WebView as a key down and up event. * @param c The character to be sent. */ - private void sendCharacter(char c) { + private boolean sendCharacter(char c) { if (mKeyCharacterMap == null) { mKeyCharacterMap = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD); } char[] chars = new char[1]; chars[0] = c; KeyEvent[] events = mKeyCharacterMap.getEvents(chars); - if (events != null) { + boolean mapsToKeyEvent = (events != null); + if (mapsToKeyEvent) { for (KeyEvent event : events) { sendKeyEvent(event); } } + return mapsToKeyEvent; } /** |
