Unverified Commit 3577da53 authored by chunhtai's avatar chunhtai Committed by GitHub

Revert "fix intrinsic height and width for widget span (#61485)" (#61876)

This reverts commit fc09119d.
parent 3f793102
......@@ -382,8 +382,6 @@ class RenderParagraph extends RenderBox
RenderBox child = firstChild;
final List<PlaceholderDimensions> placeholderDimensions = List<PlaceholderDimensions>(childCount);
int childIndex = 0;
if (_applyTextScaleFactorToWidgetSpan)
height = height / textScaleFactor;
while (child != null) {
// Height and baseline is irrelevant as all text will be laid
// out in a single line.
......@@ -402,8 +400,6 @@ class RenderParagraph extends RenderBox
RenderBox child = firstChild;
final List<PlaceholderDimensions> placeholderDimensions = List<PlaceholderDimensions>(childCount);
int childIndex = 0;
if (_applyTextScaleFactorToWidgetSpan)
height = height / textScaleFactor;
while (child != null) {
final double intrinsicWidth = child.getMinIntrinsicWidth(height);
final double intrinsicHeight = child.getMinIntrinsicHeight(intrinsicWidth);
......@@ -422,8 +418,6 @@ class RenderParagraph extends RenderBox
RenderBox child = firstChild;
final List<PlaceholderDimensions> placeholderDimensions = List<PlaceholderDimensions>(childCount);
int childIndex = 0;
if (_applyTextScaleFactorToWidgetSpan)
width = width / textScaleFactor;
while (child != null) {
final double intrinsicHeight = child.getMinIntrinsicHeight(width);
final double intrinsicWidth = child.getMinIntrinsicWidth(intrinsicHeight);
......
......@@ -326,97 +326,6 @@ void main() {
expect(paragraph.locale, const Locale('ja', 'JP'));
});
test('can compute IntrinsicHeight for widget span', () {
// Regression test for https://github.com/flutter/flutter/issues/59316
const double screenWidth = 100.0;
const String sentence = 'one two';
List<RenderBox> renderBoxes = <RenderBox>[
RenderParagraph(const TextSpan(text: sentence), textDirection: TextDirection.ltr),
];
RenderParagraph paragraph = RenderParagraph(
const TextSpan(
children: <InlineSpan> [
WidgetSpan(child: Text(sentence))
]
),
textScaleFactor: 1.0,
children: renderBoxes,
textDirection: TextDirection.ltr,
applyTextScaleFactorToWidgetSpan: true,
);
layout(paragraph, constraints: const BoxConstraints(maxWidth: screenWidth));
final double singleLineHeight = paragraph.computeMaxIntrinsicHeight(screenWidth);
expect(singleLineHeight, 14.0);
pumpFrame();
renderBoxes = <RenderBox>[
RenderParagraph(const TextSpan(text: sentence), textDirection: TextDirection.ltr),
];
paragraph = RenderParagraph(
const TextSpan(
children: <InlineSpan> [
WidgetSpan(child: Text(sentence))
]
),
textScaleFactor: 2.0,
children: renderBoxes,
textDirection: TextDirection.ltr,
applyTextScaleFactorToWidgetSpan: true,
);
layout(paragraph, constraints: const BoxConstraints(maxWidth: screenWidth));
final double maxIntrinsicHeight = paragraph.computeMaxIntrinsicHeight(screenWidth);
final double minIntrinsicHeight = paragraph.computeMinIntrinsicHeight(screenWidth);
// intrinsicHeight = singleLineHeight * textScaleFactor * two lines.
expect(maxIntrinsicHeight, singleLineHeight * 2.0 * 2);
expect(maxIntrinsicHeight, minIntrinsicHeight);
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/61020
test('can compute IntrinsicWidth for widget span', () {
// Regression test for https://github.com/flutter/flutter/issues/59316
const double screenWidth = 1000.0;
const double fixedHeight = 1000.0;
const String sentence = 'one two';
List<RenderBox> renderBoxes = <RenderBox>[
RenderParagraph(const TextSpan(text: sentence), textDirection: TextDirection.ltr),
];
RenderParagraph paragraph = RenderParagraph(
const TextSpan(
children: <InlineSpan> [
WidgetSpan(child: Text(sentence))
]
),
textScaleFactor: 1.0,
children: renderBoxes,
textDirection: TextDirection.ltr,
applyTextScaleFactorToWidgetSpan: true,
);
layout(paragraph, constraints: const BoxConstraints(maxWidth: screenWidth));
final double widthForOneLine = paragraph.computeMaxIntrinsicWidth(fixedHeight);
expect(widthForOneLine, 98.0);
pumpFrame();
renderBoxes = <RenderBox>[
RenderParagraph(const TextSpan(text: sentence), textDirection: TextDirection.ltr),
];
paragraph = RenderParagraph(
const TextSpan(
children: <InlineSpan> [
WidgetSpan(child: Text(sentence))
]
),
textScaleFactor: 2.0,
children: renderBoxes,
textDirection: TextDirection.ltr,
applyTextScaleFactorToWidgetSpan: true,
);
layout(paragraph, constraints: const BoxConstraints(maxWidth: screenWidth));
final double maxIntrinsicWidth = paragraph.computeMaxIntrinsicWidth(fixedHeight);
// maxIntrinsicWidth = widthForOneLine * textScaleFactor
expect(maxIntrinsicWidth, widthForOneLine * 2.0);
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/61020
test('inline widgets test', () {
const TextSpan text = TextSpan(
text: 'a',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment