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));