diff --git a/lib/scripts/navigator.patch b/lib/scripts/navigator.patch new file mode 100644 index 000000000..5bd746728 --- /dev/null +++ b/lib/scripts/navigator.patch @@ -0,0 +1,15 @@ +diff --git a/packages/flutter/lib/src/widgets/navigator.dart b/packages/flutter/lib/src/widgets/navigator.dart +index fb7ccc5da2f..54dbc2b6c1d 100644 +--- a/packages/flutter/lib/src/widgets/navigator.dart ++++ b/packages/flutter/lib/src/widgets/navigator.dart +@@ -5615,7 +5615,9 @@ class NavigatorState extends State with TickerProviderStateMixin, Res + _debugLocked = false; + return true; + }()); +- _afterNavigation(entry.route); ++ if (entry.currentState == _RouteLifecycle.popping) { ++ _afterNavigation(entry.route); ++ } + } + + /// Calls [pop] repeatedly until the predicate returns true. diff --git a/lib/scripts/patch.ps1 b/lib/scripts/patch.ps1 index 5a485cc97..957529afb 100644 --- a/lib/scripts/patch.ps1 +++ b/lib/scripts/patch.ps1 @@ -20,6 +20,8 @@ $ScrollViewPatch = "lib/scripts/scroll_view.patch" $TextSelectionPatch = "lib/scripts/text_selection.patch" +$NavigatorPatch = "lib/scripts/navigator.patch" + # TODO: remove # https://github.com/flutter/flutter/issues/90223 $ModalBarrierPatch = "lib/scripts/modal_barrier.patch" @@ -46,10 +48,12 @@ switch ($platform.ToLower()) { $reverts += $NewOverScrollIndicator $patches += $BottomSheetAndroidPatch $patches += $ScrollViewPatch + $patches += $NavigatorPatch } "ios" { $patches += $ScrollViewPatch $patches += $BottomSheetIOSFlutterPatch + $patches += $NavigatorPatch } "linux" { $picks += $ToolTipFix