summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/webkit/WebTextView.java15
-rw-r--r--core/java/android/webkit/WebView.java3
2 files changed, 4 insertions, 14 deletions
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java
index bd5ec7944473..72b0023a2432 100644
--- a/core/java/android/webkit/WebTextView.java
+++ b/core/java/android/webkit/WebTextView.java
@@ -135,6 +135,7 @@ import junit.framework.Assert;
// Used to determine whether onFocusChanged was called as a result of
// calling remove().
private boolean mInsideRemove;
+ private boolean mInPassword;
// Types used with setType. Keep in sync with CachedInput.h
private static final int NORMAL_TEXT_FIELD = 0;
@@ -784,22 +785,11 @@ import junit.framework.Assert;
mInsideRemove = false;
}
- /**
- * Move the caret/selection into view.
- */
- /* package */ void bringIntoView() {
- bringPointIntoView(Selection.getSelectionEnd(getText()));
- }
-
@Override
public boolean bringPointIntoView(int offset) {
- if (mWebView == null) return false;
- if (mWebView.nativeFocusCandidateIsPassword()) {
+ if (mInPassword) {
return getLayout() != null && super.bringPointIntoView(offset);
}
- // For non password text input, tell webkit to move the caret/selection
- // on screen, since webkit draws them.
- mWebView.revealSelection();
return true;
}
@@ -914,6 +904,7 @@ import junit.framework.Assert;
* @param inPassword True if the textfield is a password field.
*/
/* package */ void setInPassword(boolean inPassword) {
+ mInPassword = inPassword;
if (inPassword) {
setInputType(EditorInfo.TYPE_CLASS_TEXT | EditorInfo.
TYPE_TEXT_VARIATION_WEB_PASSWORD);
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index ebf33050471f..9e09c286f1d0 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -4268,7 +4268,7 @@ public class WebView extends AbsoluteLayout
Rect vBox = contentToViewRect(bounds);
mWebTextView.setRect(vBox.left, vBox.top, vBox.width(), vBox.height());
if (!Rect.intersects(bounds, visibleRect)) {
- mWebTextView.bringIntoView();
+ revealSelection();
}
String text = nativeFocusCandidateText();
int nodePointer = nativeFocusCandidatePointer();
@@ -7274,7 +7274,6 @@ public class WebView extends AbsoluteLayout
// this is sent after finishing resize in WebViewCore. Make
// sure the text edit box is still on the screen.
if (inEditingMode() && nativeCursorIsTextInput()) {
- mWebTextView.bringIntoView();
rebuildWebTextView();
}
break;