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

Commit 2237829e authored by Gilles Debunne's avatar Gilles Debunne
Browse files

Bug 5150869: Text selection enabled in browser.

After text selection is started, rebuildWebTextView is called, which
calls setHorizontallyScrolling with false (multi-line). This was already
its value, but since there was no test for a value change, the layout was
nulled and this stops the selection mode.

Change-Id: I99aadbf45fca4fbdbe8ab7266fe9a7ff839e2792
parent 27dca78e
Loading
Loading
Loading
Loading
+35 −27
Original line number Diff line number Diff line
@@ -16,11 +16,6 @@

package android.widget;

import com.android.internal.util.FastMath;
import com.android.internal.widget.EditableInputConnection;

import org.xmlpull.v1.XmlPullParserException;

import android.R;
import android.content.ClipData;
import android.content.ClipData.Item;
@@ -139,6 +134,11 @@ import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputMethodManager;
import android.widget.RemoteViews.RemoteView;

import com.android.internal.util.FastMath;
import com.android.internal.widget.EditableInputConnection;

import org.xmlpull.v1.XmlPullParserException;

import java.io.IOException;
import java.lang.ref.WeakReference;
import java.text.BreakIterator;
@@ -2493,6 +2493,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     * @attr ref android.R.styleable#TextView_scrollHorizontally
     */
    public void setHorizontallyScrolling(boolean whether) {
        if (mHorizontallyScrolling != whether) {
            mHorizontallyScrolling = whether;

            if (mLayout != null) {
@@ -2501,6 +2502,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                invalidate();
            }
        }
    }

    /**
     * Makes the TextView at least this many lines tall.
@@ -2699,8 +2701,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     * @attr ref android.R.styleable#TextView_lineSpacingMultiplier
     */
    public void setLineSpacing(float add, float mult) {
        mSpacingMult = mult;
        if (mSpacingAdd != add || mSpacingMult != mult) {
            mSpacingAdd = add;
            mSpacingMult = mult;

            if (mLayout != null) {
                nullLayouts();
@@ -2708,6 +2711,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                invalidate();
            }
        }
    }

    /**
     * Convenience method: Append the specified text to the TextView's
@@ -6252,6 +6256,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     * @attr ref android.R.styleable#TextView_includeFontPadding
     */
    public void setIncludeFontPadding(boolean includepad) {
        if (mIncludePad != includepad) {
            mIncludePad = includepad;

            if (mLayout != null) {
@@ -6260,6 +6265,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                invalidate();
            }
        }
    }

    private static final BoringLayout.Metrics UNKNOWN_BORING = new BoringLayout.Metrics();

@@ -6581,7 +6587,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
        } else {
            // Dynamic width, so we have no choice but to request a new
            // view layout with a new text layout.

            nullLayouts();
            requestLayout();
            invalidate();
@@ -7070,6 +7075,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     * @attr ref android.R.styleable#TextView_ellipsize
     */
    public void setEllipsize(TextUtils.TruncateAt where) {
        // TruncateAt is an enum. != comparison is ok between these singleton objects.
        if (mEllipsize != where) {
            mEllipsize = where;

            if (mLayout != null) {
@@ -7078,6 +7085,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                invalidate();
            }
        }
    }

    /**
     * Sets how many times to repeat the marquee animation. Only applied if the