diff options
| -rw-r--r-- | core/java/android/webkit/WebTextView.java | 15 | ||||
| -rw-r--r-- | core/java/android/webkit/WebView.java | 3 |
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; |