From 9056c0b192bda5ff055a80d2caaa8c0d6d10dbac Mon Sep 17 00:00:00 2001 From: Limane Gaya Date: Fri, 21 Jun 2024 18:41:14 +0200 Subject: [PATCH] made SelectionArea alignment consistent between web and other platform (#150037) Currently, when text is placed inside a SelectionArea widget that's nested within a Column widget, it results in misalignment, causing the text to appear centered instead of aligned as intended. This was originally #149552 but had issues with my branch. *List which issues are fixed by this PR. You must list at least one issue. An issue is not required if the PR fixes something trivial like a typo.* Fixes #148934 Fixes #121053 *If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].* --- ...rm_selectable_region_context_menu_web.dart | 1 - .../test/widgets/selectable_region_test.dart | 21 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/flutter/lib/src/widgets/_platform_selectable_region_context_menu_web.dart b/packages/flutter/lib/src/widgets/_platform_selectable_region_context_menu_web.dart index c4fa712ac19..0f261aa21ae 100644 --- a/packages/flutter/lib/src/widgets/_platform_selectable_region_context_menu_web.dart +++ b/packages/flutter/lib/src/widgets/_platform_selectable_region_context_menu_web.dart @@ -135,7 +135,6 @@ class PlatformSelectableRegionContextMenu extends StatelessWidget { @override Widget build(BuildContext context) { return Stack( - alignment: Alignment.center, children: [ const Positioned.fill( child: HtmlElementView( diff --git a/packages/flutter/test/widgets/selectable_region_test.dart b/packages/flutter/test/widgets/selectable_region_test.dart index c1710f8dd36..051cfda9545 100644 --- a/packages/flutter/test/widgets/selectable_region_test.dart +++ b/packages/flutter/test/widgets/selectable_region_test.dart @@ -3594,6 +3594,27 @@ void main() { skip: kIsWeb, // [intended] Web uses its native context menu. ); + // Regression test for https://github.com/flutter/flutter/issues/121053. + testWidgets('Ensure SelectionArea does not affect the layout of its children', (WidgetTester tester) async { + await tester.pumpWidget( + const MaterialApp( + home: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + SelectionArea(child: Text('row 1')), + Text('row 2'), + ], + ), + ), + ); + await tester.pumpAndSettle(); + final double xOffset1 = tester.getTopLeft(find.text('row 1')).dx; + final double xOffset2 = tester.getTopLeft(find.text('row 2')).dx; + expect(xOffset1, xOffset2); + }, + variant: TargetPlatformVariant.all(), + ); + testWidgets('the selection behavior when clicking `Copy` item in mobile platforms', (WidgetTester tester) async { List buttonItems = []; final FocusNode focusNode = FocusNode();