diff options
-rw-r--r-- | core/java/android/webkit/WebTextView.java | 4 | ||||
-rw-r--r-- | core/java/android/webkit/WebView.java | 3 | ||||
-rw-r--r-- | core/java/android/widget/TextView.java | 9 |
3 files changed, 16 insertions, 0 deletions
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(); |