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

Commit d69b7012 authored by Leon Scroggins's avatar Leon Scroggins
Browse files

Scroll textfield onscreen when the IME shows.

Bug:4079218
Change-Id: I69fe49582effe664c2288401871922a2cacc7c9c
parent 5fa7aac8
Loading
Loading
Loading
Loading
+22 −2
Original line number Diff line number Diff line
@@ -26,14 +26,15 @@ import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.ResultReceiver;
import android.text.BoringLayout.Metrics;
import android.text.DynamicLayout;
import android.text.Editable;
import android.text.InputFilter;
import android.text.Layout;
import android.text.Layout.Alignment;
import android.text.Selection;
import android.text.Spannable;
import android.text.TextPaint;
@@ -136,6 +137,23 @@ import junit.framework.Assert;
    // Used to determine whether onFocusChanged was called as a result of
    // calling remove().
    private boolean mInsideRemove;
    private class MyResultReceiver extends ResultReceiver {
        @Override
        protected void onReceiveResult(int resultCode, Bundle resultData) {
            if (resultCode == InputMethodManager.RESULT_SHOWN
                    && mWebView != null) {
                mWebView.revealSelection();
            }
        }

        /**
         * @param handler
         */
        public MyResultReceiver(Handler handler) {
            super(handler);
        }
    }
    private MyResultReceiver mReceiver;

    // Types used with setType.  Keep in sync with CachedInput.h
    private static final int NORMAL_TEXT_FIELD = 0;
@@ -184,7 +202,7 @@ import junit.framework.Assert;
                }
            }
        };

        mReceiver = new MyResultReceiver(mHandler);
    }

    public void setAutoFillable(int queryId) {
@@ -362,6 +380,8 @@ import junit.framework.Assert;
        }
    }

    /* package */ ResultReceiver getResultReceiver() { return mReceiver; }

    /**
     *  Determine whether this WebTextView currently represents the node
     *  represented by ptr.
+1 −1
Original line number Diff line number Diff line
@@ -4279,7 +4279,7 @@ public class WebView extends AbsoluteLayout
        if (isTextView) {
            rebuildWebTextView();
            if (inEditingMode()) {
                imm.showSoftInput(mWebTextView, 0);
                imm.showSoftInput(mWebTextView, 0, mWebTextView.getResultReceiver());
                if (zoom) {
                    didUpdateWebTextViewDimensions(INTERSECTS_SCREEN);
                }