summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Leon Scroggins III <scroggo@google.com> 2010-08-27 14:44:37 -0400
committer Leon Scroggins III <scroggo@google.com> 2010-08-27 14:44:37 -0400
commit3d540842f70f9719ff5abbac3bd492e7949d4aab (patch)
treeacd54e680031804357c980136b6e3152b148470c
parent8deae99ba17afcdd3a945481223524541903ed67 (diff)
Send delete key events when pressed at beginning of field.
Bug: 2952504 Change-Id: Iafb33a29a3b9e51c5db16e7a123fe91f73480643
-rw-r--r--core/java/android/webkit/WebTextView.java13
1 files changed, 7 insertions, 6 deletions
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java
index 48c065af68fc..990f891c6eca 100644
--- a/core/java/android/webkit/WebTextView.java
+++ b/core/java/android/webkit/WebTextView.java
@@ -153,11 +153,13 @@ import java.util.ArrayList;
return true;
}
Spannable text = (Spannable) getText();
- int oldLength = text.length();
+ int oldStart = Selection.getSelectionStart(text);
+ int oldEnd = Selection.getSelectionEnd(text);
// Normally the delete key's dom events are sent via onTextChanged.
- // However, if the length is zero, the text did not change, so we
- // go ahead and pass the key down immediately.
- if (KeyEvent.KEYCODE_DEL == keyCode && 0 == oldLength) {
+ // However, if the cursor is at the beginning of the field, which
+ // includes the case where it has zero length, then the text is not
+ // changed, so send the events immediately.
+ if (KeyEvent.KEYCODE_DEL == keyCode && oldStart == 0 && oldEnd == 0) {
sendDomEvent(event);
return true;
}
@@ -197,9 +199,8 @@ import java.util.ArrayList;
if (getLayout() == null) {
measure(mWidthSpec, mHeightSpec);
}
- int oldStart = Selection.getSelectionStart(text);
- int oldEnd = Selection.getSelectionEnd(text);
+ int oldLength = text.length();
boolean maxedOut = mMaxLength != -1 && oldLength == mMaxLength;
// If we are at max length, and there is a selection rather than a
// cursor, we need to store the text to compare later, since the key