Pass through magnifierConfiguration (#118270)
diff --git a/packages/flutter/lib/src/material/text_form_field.dart b/packages/flutter/lib/src/material/text_form_field.dart
index 780ec13..88d7328 100644
--- a/packages/flutter/lib/src/material/text_form_field.dart
+++ b/packages/flutter/lib/src/material/text_form_field.dart
@@ -154,6 +154,7 @@
bool enableIMEPersonalizedLearning = true,
MouseCursor? mouseCursor,
EditableTextContextMenuBuilder? contextMenuBuilder = _defaultContextMenuBuilder,
+ TextMagnifierConfiguration? magnifierConfiguration,
}) : assert(initialValue == null || controller == null),
assert(obscuringCharacter.length == 1),
assert(maxLines == null || maxLines > 0),
@@ -234,6 +235,7 @@
enableIMEPersonalizedLearning: enableIMEPersonalizedLearning,
mouseCursor: mouseCursor,
contextMenuBuilder: contextMenuBuilder,
+ magnifierConfiguration: magnifierConfiguration,
),
);
},
diff --git a/packages/flutter/test/material/text_form_field_test.dart b/packages/flutter/test/material/text_form_field_test.dart
index a44716c..3b533ae 100644
--- a/packages/flutter/test/material/text_form_field_test.dart
+++ b/packages/flutter/test/material/text_form_field_test.dart
@@ -1148,4 +1148,25 @@
variant: TargetPlatformVariant.all(),
skip: kIsWeb, // [intended] we don't supply the cut/copy/paste buttons on the web.
);
+
+ testWidgets('magnifierConfiguration passes through to EditableText', (WidgetTester tester) async {
+ final TextMagnifierConfiguration myTextMagnifierConfiguration = TextMagnifierConfiguration(
+ magnifierBuilder: (BuildContext context, MagnifierController controller, ValueNotifier<MagnifierInfo> notifier) {
+ return const Placeholder();
+ },
+ );
+
+ await tester.pumpWidget(MaterialApp(
+ home: Scaffold(
+ body: TextField(
+ magnifierConfiguration: myTextMagnifierConfiguration,
+ ),
+ ),
+ ));
+
+ expect(find.byType(EditableText), findsOneWidget);
+
+ final EditableText editableText = tester.widget(find.byType(EditableText));
+ expect(editableText.magnifierConfiguration, equals(myTextMagnifierConfiguration));
+ });
}