Fix RenderEditable not able to update backgroundCursorColor when the user provides a new one (#112045)
Pass through backgroundCursorColor parameter
diff --git a/packages/flutter/lib/src/widgets/editable_text.dart b/packages/flutter/lib/src/widgets/editable_text.dart
index 308cbe6..9399cf5 100644
--- a/packages/flutter/lib/src/widgets/editable_text.dart
+++ b/packages/flutter/lib/src/widgets/editable_text.dart
@@ -4052,6 +4052,7 @@
..cursorColor = cursorColor
..startHandleLayerLink = startHandleLayerLink
..endHandleLayerLink = endHandleLayerLink
+ ..backgroundCursorColor = backgroundCursorColor
..showCursor = showCursor
..forceLine = forceLine
..readOnly = readOnly
diff --git a/packages/flutter/test/widgets/editable_text_test.dart b/packages/flutter/test/widgets/editable_text_test.dart
index 201a1c1..71bd089 100644
--- a/packages/flutter/test/widgets/editable_text_test.dart
+++ b/packages/flutter/test/widgets/editable_text_test.dart
@@ -262,6 +262,30 @@
expect(editableText.textHeightBehavior, isNull);
});
+ testWidgets('when backgroundCursorColor is updated, RenderEditable should be updated', (WidgetTester tester) async {
+ Widget buildWidget(Color backgroundCursorColor) {
+ return MediaQuery(
+ data: const MediaQueryData(),
+ child: Directionality(
+ textDirection: TextDirection.ltr,
+ child: EditableText(
+ controller: controller,
+ backgroundCursorColor: backgroundCursorColor,
+ focusNode: focusNode,
+ style: textStyle,
+ cursorColor: cursorColor,
+ ),
+ ),
+ );
+ }
+
+ await tester.pumpWidget(buildWidget(Colors.red));
+ await tester.pumpWidget(buildWidget(Colors.green));
+
+ final RenderEditable render = tester.allRenderObjects.whereType<RenderEditable>().first;
+ expect(render.backgroundCursorColor, Colors.green);
+ });
+
testWidgets('text keyboard is requested when maxLines is default', (WidgetTester tester) async {
await tester.pumpWidget(
MediaQuery(