From 241403fd19edc44d089f3860db1562ed523dea07 Mon Sep 17 00:00:00 2001 From: Leon Scroggins Date: Wed, 16 Sep 2009 18:26:17 -0400 Subject: Update the input method when the selection changes. Fix http://b/issue?id=2074446 Add in code that is normally called by TextView.onDraw(). Since drawing does not happen for WebTextView, we need to call it ourselves. Change-Id: Icb47f6a58fba6f8b11e2924befc704f26af68d43 --- core/java/android/webkit/WebTextView.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'core/java/android/webkit/WebTextView.java') diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java index a175be0..39a2470 100644 --- a/core/java/android/webkit/WebTextView.java +++ b/core/java/android/webkit/WebTextView.java @@ -16,6 +16,8 @@ package android.webkit; +import com.android.internal.widget.EditableInputConnection; + import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; @@ -347,6 +349,16 @@ import java.util.ArrayList; @Override protected void onSelectionChanged(int selStart, int selEnd) { + // This code is copied from TextView.onDraw(). That code does not get + // executed, however, because the WebTextView does not draw, allowing + // webkit's drawing to show through. + InputMethodManager imm = InputMethodManager.peekInstance(); + if (imm != null && imm.isActive(this)) { + Spannable sp = (Spannable) getText(); + int candStart = EditableInputConnection.getComposingSpanStart(sp); + int candEnd = EditableInputConnection.getComposingSpanEnd(sp); + imm.updateSelection(this, selStart, selEnd, candStart, candEnd); + } if (!mFromWebKit && mWebView != null) { if (DebugFlags.WEB_TEXT_VIEW) { Log.v(LOGTAG, "onSelectionChanged selStart=" + selStart -- cgit v1.1