summaryrefslogtreecommitdiffstats
path: root/core/java/android/webkit/WebTextView.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/webkit/WebTextView.java')
-rw-r--r--core/java/android/webkit/WebTextView.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java
index f479124..e0d41c2 100644
--- a/core/java/android/webkit/WebTextView.java
+++ b/core/java/android/webkit/WebTextView.java
@@ -87,11 +87,12 @@ import java.util.ArrayList;
// Gets set to true when the the IME jumps to the next textfield. When this
// happens, the next time the user hits a key it is okay for the focus
// pointer to not match the WebTextView's node pointer
- private boolean mOkayForFocusNotToMatch;
+ boolean mOkayForFocusNotToMatch;
// Whether or not a selection change was generated from webkit. If it was,
// we do not need to pass the selection back to webkit.
private boolean mFromWebKit;
private boolean mGotTouchDown;
+ private boolean mInSetTextAndKeepSelection;
// Array to store the final character added in onTextChanged, so that its
// KeyEvents may be determined.
private char[] mCharacter = new char[1];
@@ -395,7 +396,9 @@ import java.util.ArrayList;
Log.v(LOGTAG, "onTextChanged start=" + start
+ " start + before=" + (start + before));
}
- mWebView.setSelection(start, start + before);
+ if (!mInSetTextAndKeepSelection) {
+ mWebView.setSelection(start, start + before);
+ }
}
if (!cannotUseKeyEvents) {
int length = events.length;
@@ -791,7 +794,9 @@ import java.util.ArrayList;
/* package */ void setTextAndKeepSelection(String text) {
mPreChange = text.toString();
Editable edit = (Editable) getText();
+ mInSetTextAndKeepSelection = true;
edit.replace(0, edit.length(), text);
+ mInSetTextAndKeepSelection = false;
updateCachedTextfield();
}