getPositionForPoint method

  1. @override
TextPosition getPositionForPoint(
  1. Offset? globalPosition
)
override

Implementation

@override
TextPosition getPositionForPoint(Offset? globalPosition) {
  layoutTextWithConstraints(constraints);

  final Offset offset = globalToLocal(globalPosition!);

  TextPosition result = _textPainter.getPositionForOffset(offset);

  // never drag over the over flow text span
  final TextSelection selection = neverDragOnOverflow(TextSelection.collapsed(
    offset: result.offset,
    affinity: result.affinity,
  ));

  if (selection.baseOffset != result.offset) {
    result =
        TextPosition(offset: selection.baseOffset, affinity: result.affinity);
  } else if (selection.extentOffset != result.offset) {
    result = TextPosition(
        offset: selection.extentOffset, affinity: result.affinity);
  }

  return result;
}