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:
Keisuke Kuroyanagi
2016-04-05 09:30:51 +00:00
committed by android-build-merger

View File

@@ -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);