Pass the width constraint to the text layout engine if ellipsizing is enabled (#11877)
diff --git a/packages/flutter/lib/src/rendering/paragraph.dart b/packages/flutter/lib/src/rendering/paragraph.dart
index c10c7bd..14d9f61 100644
--- a/packages/flutter/lib/src/rendering/paragraph.dart
+++ b/packages/flutter/lib/src/rendering/paragraph.dart
@@ -148,7 +148,10 @@
}
void _layoutText({ double minWidth: 0.0, double maxWidth: double.INFINITY }) {
- _textPainter.layout(minWidth: minWidth, maxWidth: _softWrap ? maxWidth : double.INFINITY);
+ _textPainter.layout(
+ minWidth: minWidth,
+ maxWidth: _softWrap || _overflow == TextOverflow.ellipsis ? maxWidth : double.INFINITY
+ );
}
void _layoutTextWithConstraints(BoxConstraints constraints) {
diff --git a/packages/flutter/test/rendering/paragraph_test.dart b/packages/flutter/test/rendering/paragraph_test.dart
index 9394bd8..1b67e88 100644
--- a/packages/flutter/test/rendering/paragraph_test.dart
+++ b/packages/flutter/test/rendering/paragraph_test.dart
@@ -132,7 +132,7 @@
expect(paragraph.size.height, equals(lineHeight));
relayoutWith(maxLines: 3, softWrap: false, overflow: TextOverflow.ellipsis);
- expect(paragraph.size.height, equals(2 * lineHeight));
+ expect(paragraph.size.height, equals(3 * lineHeight));
relayoutWith(maxLines: null, softWrap: false, overflow: TextOverflow.ellipsis);
expect(paragraph.size.height, equals(2 * lineHeight));