clamp method

TextOffsetStateSnapshot clamp(
  1. int textLength, {
  2. bool preserveCollapsedSelection = false,
})

Implementation

TextOffsetStateSnapshot clamp(
  int textLength, {
  bool preserveCollapsedSelection = false,
}) {
  final clampedCursor = cursorOffset.clamp(0, textLength);
  final clampedBase = selectionBaseOffset?.clamp(0, textLength);
  final clampedExtent = selectionExtentOffset?.clamp(0, textLength);

  if (clampedBase == null || clampedExtent == null) {
    return TextOffsetStateSnapshot.collapsed(cursorOffset: clampedCursor);
  }
  if (clampedBase == clampedExtent && !preserveCollapsedSelection) {
    return TextOffsetStateSnapshot.collapsed(cursorOffset: clampedCursor);
  }

  return TextOffsetStateSnapshot(
    cursorOffset: clampedCursor,
    selectionBaseOffset: clampedBase,
    selectionExtentOffset: clampedExtent,
  );
}