selectPositionAt method

void selectPositionAt(
  1. {required Offset from,
  2. Offset? to,
  3. required SelectionChangedCause cause}
)

Select text between the global positions from and to.

from corresponds to the TextSelection.baseOffset, and to corresponds to the TextSelection.extentOffset.

Implementation

void selectPositionAt({ required Offset from, Offset? to, required SelectionChangedCause cause }) {
  _layoutText(minWidth: constraints.minWidth, maxWidth: constraints.maxWidth);
  final TextPosition fromPosition = _textPainter.getPositionForOffset(globalToLocal(from - _paintOffset));
  final TextPosition? toPosition = to == null
    ? null
    : _textPainter.getPositionForOffset(globalToLocal(to - _paintOffset));

  final int baseOffset = fromPosition.offset;
  final int extentOffset = toPosition?.offset ?? fromPosition.offset;

  final TextSelection newSelection = TextSelection(
    baseOffset: baseOffset,
    extentOffset: extentOffset,
    affinity: fromPosition.affinity,
  );

  _setSelection(newSelection, cause);
}