getLocalRectForCaret method Null safety
- TextPosition caretPosition
Returns the Rect in local coordinates for the caret at the given text position.
See also:
- getPositionForPoint, which is the reverse operation, taking an Offset in global coordinates and returning a TextPosition.
- getEndpointsForSelection, which is the equivalent but for a selection rather than a particular text position.
- TextPainter.getOffsetForCaret, the equivalent method for a TextPainter object.
Implementation
Rect getLocalRectForCaret(TextPosition caretPosition) {
_computeTextMetricsIfNeeded();
final Offset caretOffset = _textPainter.getOffsetForCaret(caretPosition, _caretPrototype);
// This rect is the same as _caretPrototype but without the vertical padding.
final Rect rect = Rect.fromLTWH(0.0, 0.0, cursorWidth, cursorHeight).shift(caretOffset + _paintOffset + cursorOffset);
// Add additional cursor offset (generally only if on iOS).
return rect.shift(_snapToPhysicalPixel(rect.topLeft));
}