getExtentEndpointForSelection method
Returns a point for the extent selection handle used on touch-oriented devices.
The selection
parameter is expected to be in local offsets to this
render object's node
.
Implementation
@override
TextSelectionPoint getExtentEndpointForSelection(TextSelection selection) {
if (selection.isCollapsed) {
return TextSelectionPoint(
Offset(0, preferredLineHeight(selection.extent)) + getOffsetForCaret(selection.extent), null);
}
final extentNode = container.queryChild(selection.end, false).node;
var extentChild = firstChild;
while (extentChild != null) {
if (extentChild.container == extentNode) {
break;
}
extentChild = childAfter(extentChild);
}
assert(extentChild != null);
final extentPoint =
extentChild!.getExtentEndpointForSelection(localSelection(extentChild.container, selection, true));
return TextSelectionPoint(
extentPoint.point + (extentChild.parentData as BoxParentData).offset, extentPoint.direction);
}