paintWidgets method

void paintWidgets(
  1. PaintingContext context,
  2. Offset offset, {
  3. Rect? overFlowRect,
})

Implementation

void paintWidgets(PaintingContext context, Offset offset,
    {Rect? overFlowRect}) {
  RenderBox? child = firstChild;
  int childIndex = 0;

  ///maybe overflow
  while (child != null &&
      childIndex < textPainter.inlinePlaceholderBoxes!.length) {
    //assert(childIndex < _textPainter.inlinePlaceholderBoxes.length);

    final TextParentData textParentData = child.parentData as TextParentData;

    final double? scale = textParentData.scale;

    final Rect rect = (offset + textParentData.offset) & child.size;
    bool overlaps = false;
    if (overFlowRect != null) {
      if (overFlowRect.overlaps(rect)) {
        final Rect intersectRect = overFlowRect.intersect(rect);
        overlaps = intersectRect.size > const Offset(1, 1);
      }
    }

    if (!overlaps) {
      context.pushTransform(
        needsCompositing,
        offset + textParentData.offset,
        Matrix4.diagonal3Values(scale!, scale, scale),
        (PaintingContext context, Offset offset) {
          context.paintChild(
            child!,
            offset,
          );
        },
      );
    }

    child = childAfter(child);
    childIndex += 1;
  }
}