convertKeyboardMoveSelection function

TextSelection convertKeyboardMoveSelection(
  1. InlineSpan text,
  2. TextSelection selection
)

Implementation

TextSelection convertKeyboardMoveSelection(
  InlineSpan text,
  TextSelection selection,
) {
  if (selection.isValid) {
    if (selection.isCollapsed) {
      final TextPosition? extent = convertKeyboardMoveTextPostion(
        text,
        selection.extent,
      );
      if (selection.extent != extent) {
        selection = selection.copyWith(
            baseOffset: extent!.offset,
            extentOffset: extent.offset,
            affinity: selection.affinity,
            isDirectional: selection.isDirectional);
        return selection;
      }
    } else {
      final TextPosition? extent = convertKeyboardMoveTextPostion(
        text,
        selection.extent,
      );

      final TextPosition? base = convertKeyboardMoveTextPostion(
        text,
        selection.base,
      );

      if (selection.extent != extent || selection.base != base) {
        selection = selection.copyWith(
            baseOffset: base!.offset,
            extentOffset: extent!.offset,
            affinity: selection.affinity,
            isDirectional: selection.isDirectional);
        return selection;
      }
    }
  }

  return selection;
}