getLocalRectForCaret method
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.
- MongolTextPainter.getOffsetForCaret, the equivalent method for a MongolTextPainter object.
Implementation
Rect getLocalRectForCaret(TextPosition caretPosition) {
_computeTextMetricsIfNeeded();
final caretOffset =
_textPainter.getOffsetForCaret(caretPosition, _caretPrototype);
// This rect is the same as _caretPrototype but without the horizontal padding.
final 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));
}