getSelectionRectInView method
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);
}