Unverified Commit 7a0e3a30 authored by Chinmoy's avatar Chinmoy Committed by GitHub

Prevent text from overflowing in OutlineButton and OutlinedButton label. (#70872)

parent 29d33cc3
...@@ -310,7 +310,7 @@ class _OutlineButtonWithIcon extends OutlineButton with MaterialButtonWithIconMi ...@@ -310,7 +310,7 @@ class _OutlineButtonWithIcon extends OutlineButton with MaterialButtonWithIconMi
children: <Widget>[ children: <Widget>[
icon, icon,
const SizedBox(width: 8.0), const SizedBox(width: 8.0),
label, Flexible(child: label),
], ],
), ),
); );
......
...@@ -345,7 +345,7 @@ class _OutlinedButtonWithIconChild extends StatelessWidget { ...@@ -345,7 +345,7 @@ class _OutlinedButtonWithIconChild extends StatelessWidget {
final double gap = scale <= 1 ? 8 : lerpDouble(8, 4, math.min(scale - 1, 1))!; final double gap = scale <= 1 ? 8 : lerpDouble(8, 4, math.min(scale - 1, 1))!;
return Row( return Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: <Widget>[icon, SizedBox(width: gap), label], children: <Widget>[icon, SizedBox(width: gap), Flexible(child: label)],
); );
} }
} }
...@@ -1222,6 +1222,22 @@ void main() { ...@@ -1222,6 +1222,22 @@ void main() {
expect(box.size, equals(const Size(76, 36))); expect(box.size, equals(const Size(76, 36)));
expect(childRect, equals(const Rect.fromLTRB(372.0, 293.0, 428.0, 307.0))); expect(childRect, equals(const Rect.fromLTRB(372.0, 293.0, 428.0, 307.0)));
}); });
testWidgets('Text does not overflow in OutlineButton label', (WidgetTester tester) async {
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: MouseRegion(
cursor: SystemMouseCursors.forbidden,
child: OutlineButton.icon(
icon: const Icon(Icons.add),
label: const Text('this is a very long text used to check whether an overflow occurs or not'),
onPressed: () {},
),
),
),
);
});
} }
PhysicalModelLayer _findPhysicalLayer(Element element) { PhysicalModelLayer _findPhysicalLayer(Element element) {
......
...@@ -1212,6 +1212,22 @@ void main() { ...@@ -1212,6 +1212,22 @@ void main() {
); );
expect(paddingWidget.padding, const EdgeInsets.all(22)); expect(paddingWidget.padding, const EdgeInsets.all(22));
}); });
testWidgets('Text does not overflow in OutlinedButton label', (WidgetTester tester) async {
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: MouseRegion(
cursor: SystemMouseCursors.forbidden,
child: OutlinedButton.icon(
icon: const Icon(Icons.add),
label: const Text('this is a very long text used to check whether an overflow occurs or not'),
onPressed: () {},
),
),
),
);
});
} }
PhysicalModelLayer _findPhysicalLayer(Element element) { PhysicalModelLayer _findPhysicalLayer(Element element) {
......
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