Use paragraph getter in TextPainter (#127607)

This commit is contained in:
Tomasz Gucio 2023-05-31 12:14:16 +02:00 committed by GitHub
parent 224667e90f
commit ab3602b7df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -369,6 +369,7 @@ class _TextPainterLayoutCacheWithOffset {
TextWidthBasis.parent => clampDouble(layout.maxIntrinsicLineExtent, minWidth, maxWidth),
};
}
// Try to resize the contentWidth to fit the new input constraints, by just
// adjusting the paint offset (so no line-breaking changes needed).
//
@ -398,8 +399,8 @@ class _TextPainterLayoutCacheWithOffset {
assert(paragraph.width == double.infinity);
return false;
}
final double maxIntrinsicWidth = layout._paragraph.maxIntrinsicWidth;
if ((layout._paragraph.width - maxIntrinsicWidth) > -precisionErrorTolerance && (maxWidth - maxIntrinsicWidth) > -precisionErrorTolerance) {
final double maxIntrinsicWidth = paragraph.maxIntrinsicWidth;
if ((paragraph.width - maxIntrinsicWidth) > -precisionErrorTolerance && (maxWidth - maxIntrinsicWidth) > -precisionErrorTolerance) {
// Adjust the paintOffset and contentWidth to the new input constraints.
contentWidth = newContentWidth;
return true;
@ -889,7 +890,7 @@ class TextPainter {
if (span is PlaceholderSpan) {
placeholderCount += 1;
}
return value.length >= placeholderCount ;
return value.length >= placeholderCount;
});
return placeholderCount == value.length;
}());
@ -1129,7 +1130,7 @@ class TextPainter {
return true;
}());
final ui.Paragraph paragraph = layoutCache.layout._paragraph;
final ui.Paragraph paragraph = layoutCache.paragraph;
// Unfortunately even if we know that there is only paint changes, there's
// no API to only make those updates so the paragraph has to be recreated
// and re-laid out.