From 5642625cfb065de38440408c1e2e8a8c6f8fa32d Mon Sep 17 00:00:00 2001 From: Leon Scroggins Date: Mon, 1 Nov 2010 15:45:37 -0400 Subject: Update insertion handler for WebTextView. Bug:3152629 Change-Id: If2a33eb5456493fb9b3b2c54fcc4f5348fe129e1 --- core/java/android/webkit/WebTextView.java | 4 ++++ core/java/android/webkit/WebView.java | 3 +++ core/java/android/widget/TextView.java | 9 +++++++++ 3 files changed, 16 insertions(+) (limited to 'core') 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 @@ import java.util.ArrayList; } } + 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 @@ public class WebView extends AbsoluteLayout 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 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener 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(); -- cgit v1.1