diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java index 217ad7c4367e8..092e2b5d6dbc4 100644 --- a/core/java/android/webkit/WebTextView.java +++ b/core/java/android/webkit/WebTextView.java @@ -1092,4 +1092,11 @@ import junit.framework.Assert; return url != null ? url.getProtocol() + "://" + url.getHost() + url.getPath() : null; } + + public void setGravityForRtl(boolean rtl) { + int gravity = rtl ? Gravity.RIGHT : Gravity.LEFT; + gravity |= mSingle ? Gravity.CENTER_VERTICAL : Gravity.TOP; + setGravity(gravity); + } + } diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 370cce40b704d..851c70626cb30 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -4760,12 +4760,12 @@ public class WebView extends AbsoluteLayout } String text = nativeFocusCandidateText(); int nodePointer = nativeFocusCandidatePointer(); - mWebTextView.setGravity(nativeFocusCandidateIsRtlText() ? - Gravity.RIGHT : Gravity.NO_GRAVITY); // This needs to be called before setType, which may call // requestFormData, and it needs to have the correct nodePointer. mWebTextView.setNodePointer(nodePointer); mWebTextView.setType(nativeFocusCandidateType()); + // Gravity needs to be set after setType + mWebTextView.setGravityForRtl(nativeFocusCandidateIsRtlText()); updateWebTextViewPadding(); if (null == text) { if (DebugFlags.WEB_VIEW) {