getSelectionRectInView method

Rect? getSelectionRectInView(
  1. TextEditingController controller
)

Get the bounding rect for the current text selection.

Returns null if:

  • No selection
  • Selection is collapsed (cursor, not selection)
  • Tracker not attached

Implementation

Rect? getSelectionRectInView(TextEditingController controller) {
  if (!controller.selection.isValid) return null;
  if (controller.selection.isCollapsed) return null; // No actual selection

  final startRect = getCursorRectAt(controller.selection.start);
  final endRect = getCursorRectAt(controller.selection.end);

  if (startRect == null || endRect == null) return null;

  // For single-line: combine start and end rects
  // For multi-line: this gives the bounding box
  final combinedRect = startRect.expandToInclude(endRect);

  // Convert to view coordinates
  final renderEditable = _renderEditablePublic;
  if (renderEditable == null) return null;

  final editableOffset = renderEditable.localToGlobal(Offset.zero);
  return combinedRect.shift(editableOffset);
}