summaryrefslogtreecommitdiff
path: root/core/java/android/webkit/WebView.java
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2012-02-22 16:02:30 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-02-22 16:02:30 -0800
commit49cc3d98e296d115f1816b8a96b8ff713cf7abe3 (patch)
tree672d358443fe674b5767805a712574e7220e40ae /core/java/android/webkit/WebView.java
parent77d9ee4df6098e78ce034fa80f046f3b42de8cb3 (diff)
parent3c30d145602261a1c33f39ab143146b511e8b564 (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.java18
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;
}
/**