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

Commit 07e6c237 authored by Raph Levien's avatar Raph Levien
Browse files

Apply correct bottom padding to layouts

The returned descender value for BoringLayout and StaticLayout should
be equal to the font's "bottom" metric in the includePadding case.
Previously, the calculation incorrectly included an addition
mBottomPadding value in some cases (which was an attempt to work
around the case where maxLines was set on TextView but not the
corresponding StaticLayout, no longer the case).

Bug: 27901763
Change-Id: I008c5974b979087725a9bb9104e4771b0caac01c
parent 7eb716c0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -183,8 +183,10 @@ public class BoringLayout extends Layout implements TextUtils.EllipsizeCallback

        if (includepad) {
            spacing = metrics.bottom - metrics.top;
            mDesc = metrics.bottom;
        } else {
            spacing = metrics.descent - metrics.ascent;
            mDesc = metrics.descent;
        }

        mBottom = spacing;
@@ -208,8 +210,6 @@ public class BoringLayout extends Layout implements TextUtils.EllipsizeCallback
            mTopPadding = metrics.top - metrics.ascent;
            mBottomPadding = metrics.bottom - metrics.descent;
        }

        mDesc = spacing + mBottomPadding + (includepad ? metrics.top : metrics.ascent);
    }

    /**
+2 −12
Original line number Diff line number Diff line
@@ -1132,22 +1132,12 @@ public class StaticLayout extends Layout {

    @Override
    public int getLineTop(int line) {
        int top = mLines[mColumns * line + TOP];
        if (mMaximumVisibleLineCount > 0 && line >= mMaximumVisibleLineCount &&
                line != mLineCount) {
            top += getBottomPadding();
        }
        return top;
        return mLines[mColumns * line + TOP];
    }

    @Override
    public int getLineDescent(int line) {
        int descent = mLines[mColumns * line + DESCENT];
        if (mMaximumVisibleLineCount > 0 && line >= mMaximumVisibleLineCount - 1 && // -1 intended
                line != mLineCount) {
            descent += getBottomPadding();
        }
        return descent;
        return mLines[mColumns * line + DESCENT];
    }

    @Override