inlineElementMaxLineWidth method

double inlineElementMaxLineWidth(
  1. RenderBoxModel box
)

Implementation

double inlineElementMaxLineWidth(RenderBoxModel box) {
  if (_paragraph == null) return 0.0;
  final range = _elementRanges[box];
  if (range == null) return 0.0;
  final rects = _paragraph!.getBoxesForRange(range.$1, range.$2);
  if (rects.isEmpty) return 0.0;
  final Map<int, (double left, double right)> perLine = {};
  for (final tb in rects) {
    final int li = _lineIndexForRect(tb);
    if (li < 0) continue;
    final prev = perLine[li];
    final double l = tb.left;
    final double r = tb.right;
    if (prev == null) {
      perLine[li] = (l, r);
    } else {
      final double nl = l < prev.$1 ? l : prev.$1;
      final double nr = r > prev.$2 ? r : prev.$2;
      perLine[li] = (nl, nr);
    }
  }
  double maxW = 0.0;
  perLine.forEach((_, bounds) {
    final double w = bounds.$2 - bounds.$1;
    if (w > maxW) maxW = w;
  });
  return maxW;
}