From 348fdeebb31496f6bb10c576d6d973748b422a8f Mon Sep 17 00:00:00 2001 From: Matej Knopp Date: Wed, 3 Jul 2024 01:21:22 +0200 Subject: [PATCH] Fix result propagation in RenderSliverEdgeInsetsPadding.hitTestChildren (#149825) Fixes https://github.com/flutter/flutter/issues/149824 --- packages/flutter/lib/src/rendering/sliver_padding.dart | 2 +- packages/flutter/test/widgets/slivers_padding_test.dart | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/flutter/lib/src/rendering/sliver_padding.dart b/packages/flutter/lib/src/rendering/sliver_padding.dart index 50126bbc43..7094d89c80 100644 --- a/packages/flutter/lib/src/rendering/sliver_padding.dart +++ b/packages/flutter/lib/src/rendering/sliver_padding.dart @@ -181,7 +181,7 @@ abstract class RenderSliverEdgeInsetsPadding extends RenderSliver with RenderObj bool hitTestChildren(SliverHitTestResult result, { required double mainAxisPosition, required double crossAxisPosition }) { if (child != null && child!.geometry!.hitTestExtent > 0.0) { final SliverPhysicalParentData childParentData = child!.parentData! as SliverPhysicalParentData; - result.addWithAxisOffset( + return result.addWithAxisOffset( mainAxisPosition: mainAxisPosition, crossAxisPosition: crossAxisPosition, mainAxisOffset: childMainAxisPosition(child!), diff --git a/packages/flutter/test/widgets/slivers_padding_test.dart b/packages/flutter/test/widgets/slivers_padding_test.dart index 391ebe6cbb..9eca965bc2 100644 --- a/packages/flutter/test/widgets/slivers_padding_test.dart +++ b/packages/flutter/test/widgets/slivers_padding_test.dart @@ -185,6 +185,7 @@ void main() { expect(result.path.first.target, isA()); result = tester.hitTestOnBinding(const Offset(100.0, 100.0)); hitsText(result, 'padded'); + expect(result.path.any((HitTestEntry entry) => entry.target is RenderSliverPadding), isTrue); result = tester.hitTestOnBinding(const Offset(100.0, 490.0)); expect(result.path.first.target, isA()); result = tester.hitTestOnBinding(const Offset(10.0, 520.0));