Ensures the slop value is fixed cross lines.

In Q, the slop is a fixed value calculated based on
TextView.getLineHeight().
In R+ (before this cl), the slop is a dynamic value based on the height
of the current line.

It's been confirmed as the root cause of the regression bug b/159528374.

This cl changes the slop value back to the fixed value.

Bug: 159528374
Test: Verified locally.
Change-Id: I182d22779f1c1155ae2e0b0deb0455bd270b2fd9
This commit is contained in:
Shu Chen
2020-07-17 19:43:18 +08:00
parent fc0f88505c
commit 38dfd19611

View File

@@ -6053,9 +6053,8 @@ public class Editor {
return trueLine;
}
final int lineHeight = layout.getLineBottom(prevLine) - layout.getLineTop(prevLine);
int slop = (int)(mLineSlopRatio
* (layout.getLineBottom(trueLine) - layout.getLineTop(trueLine)));
final int lineHeight = mTextView.getLineHeight();
int slop = (int)(mLineSlopRatio * lineHeight);
slop = Math.max(mLineChangeSlopMin,
Math.min(mLineChangeSlopMax, lineHeight + slop)) - lineHeight;
slop = Math.max(0, slop);