onDoubleTapWithPosition method

void onDoubleTapWithPosition(
  1. Offset localPosition,
  2. RenderBox renderBox,
  3. Widget widget
)

Implementation

void onDoubleTapWithPosition(
  Offset localPosition,
  RenderBox renderBox,
  Widget widget,
) {
  final paragraph = renderBox as RenderFluentParagraph;
  final fragmentResult = paragraph.getFragmentAtPosition(localPosition);
  if (fragmentResult != null) {
    final node = document.nodeById(fragmentResult.fragmentId);
    if (node is Fragment) {
      final text = node.text;
      final offset = fragmentResult.localOffset;

      int start = offset;
      int end = offset;

      while (start > 0 && _isWordChar(text[start - 1])) {
        start--;
      }

      while (end < text.length && _isWordChar(text[end])) {
        end++;
      }

      document.cursor.moveTo(node.id, start);
      document.cursor.focusTo(node.id, end);

      syncSelectionManager(document);

      document.cursorOnlyUpdate();
    }
  }
}