Merge "Fix: Selection handle behavior in scrolled TextView." into nyc-dev
am: a46be16
* commit 'a46be16612573ce083404e8731a96ec30eba3c48':
Fix: Selection handle behavior in scrolled TextView.
Change-Id: I36d2bb4d219242c9fe6cc159a0cd3f55489687dd
This commit is contained in:
@@ -4875,11 +4875,12 @@ public class Editor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getOffsetAtCoordinate(@NonNull Layout layout, int line, float x) {
|
protected int getOffsetAtCoordinate(@NonNull Layout layout, int line, float x) {
|
||||||
final int primaryOffset = layout.getOffsetForHorizontal(line, x, true);
|
final float localX = mTextView.convertToLocalHorizontalCoordinate(x);
|
||||||
|
final int primaryOffset = layout.getOffsetForHorizontal(line, localX, true);
|
||||||
if (!layout.isLevelBoundary(primaryOffset)) {
|
if (!layout.isLevelBoundary(primaryOffset)) {
|
||||||
return primaryOffset;
|
return primaryOffset;
|
||||||
}
|
}
|
||||||
final int secondaryOffset = layout.getOffsetForHorizontal(line, x, false);
|
final int secondaryOffset = layout.getOffsetForHorizontal(line, localX, false);
|
||||||
final int currentOffset = getCurrentCursorOffset();
|
final int currentOffset = getCurrentCursorOffset();
|
||||||
final int primaryDiff = Math.abs(primaryOffset - currentOffset);
|
final int primaryDiff = Math.abs(primaryOffset - currentOffset);
|
||||||
final int secondaryDiff = Math.abs(secondaryOffset - currentOffset);
|
final int secondaryDiff = Math.abs(secondaryOffset - currentOffset);
|
||||||
|
|||||||
Reference in New Issue
Block a user