calculateBaseline method

  1. @override
void calculateBaseline()
override

Implementation

@override
void calculateBaseline() {
  // Baselines returned by children are relative to the child's local
  // coordinate system. RenderWidget paints its child offset by its own
  // border+padding; include that offset so cached CSS baselines are
  // relative to the RenderWidget's border box top (CSS expectation).
  double borderTop = renderStyle.effectiveBorderTopWidth.computedValue;
  double paddingTop = renderStyle.paddingTop.computedValue;
  double topInset = borderTop + paddingTop;

  double? firstBaseline = firstChild?.getDistanceToBaseline(TextBaseline.alphabetic);
  double? lastBaseline = lastChild?.getDistanceToBaseline(TextBaseline.alphabetic);

  if (firstBaseline != null) firstBaseline += topInset;
  if (lastBaseline != null) lastBaseline += topInset;
  setCssBaselines(first: firstBaseline, last: lastBaseline);
}