Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 241403fd authored by Leon Scroggins's avatar Leon Scroggins
Browse files

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
parent 44ca7090
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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