paintHandleLayers method

void paintHandleLayers(
  1. PaintingContext context,
  2. dynamic paint(
    1. PaintingContext context,
    2. Offset offset
    )
)

Implementation

void paintHandleLayers(PaintingContext context,
    Function(PaintingContext context, Offset offset) paint) {
  if (selection == null) {
    return;
  }
  final List<TextSelectionPoint>? endpoints =
      getEndpointsForSelection(selection!);

  if (endpoints == null || endpoints.isEmpty) {
    return;
  }

  Offset startPoint = endpoints[0].point;
  startPoint = Offset(
    startPoint.dx.clamp(0.0, size.width),
    startPoint.dy.clamp(0.0, size.height),
  );
  context.pushLayer(
    LeaderLayer(link: startHandleLayerLink!, offset: startPoint),
    paint,
    Offset.zero,
  );
  if (endpoints.length == 2) {
    Offset endPoint = endpoints[1].point;
    endPoint = Offset(
      endPoint.dx.clamp(0.0, size.width),
      endPoint.dy.clamp(0.0, size.height),
    );
    context.pushLayer(
      LeaderLayer(link: endHandleLayerLink!, offset: endPoint),
      paint,
      Offset.zero,
    );
  }
}