Update insertion handler for WebTextView.
Bug:3152629
Change-Id: If2a33eb5456493fb9b3b2c54fcc4f5348fe129e1
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java
index 4f192b3..1a9ccea 100644
--- a/core/java/android/webkit/WebTextView.java
+++ b/core/java/android/webkit/WebTextView.java
@@ -334,6 +334,10 @@
}
}
+ public void onDrawSubstitute() {
+ updateCursorControllerPositions();
+ }
+
@Override
public void onEditorAction(int actionCode) {
switch (actionCode) {
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 9098639..bcd0332 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -3531,6 +3531,9 @@
if (AUTO_REDRAW_HACK && mAutoRedraw) {
invalidate();
}
+ if (inEditingMode()) {
+ mWebTextView.onDrawSubstitute();
+ }
mWebViewCore.signalRepaintDone();
}
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index d719783..b30b6b1 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -4162,6 +4162,15 @@
canvas.restore();
+ updateCursorControllerPositions();
+ }
+
+ /**
+ * Update the positions of the CursorControllers. Needed by WebTextView,
+ * which does not draw.
+ * @hide
+ */
+ protected void updateCursorControllerPositions() {
if (mInsertionPointCursorController != null &&
mInsertionPointCursorController.isShowing()) {
mInsertionPointCursorController.updatePosition();