-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Do not block vertical drag gestures in CupertinoSheetRoute body #161696
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do not block vertical drag gestures in CupertinoSheetRoute body #161696
Conversation
justinmc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
For posterity and my own future memory, this PR allows the Scrollable to scroll, but on native it has the additional feature that when you reach the end of the Scrollable and continue dragging, the sheet gets dragged. That's not yet implemented here.
|
|
||
| await gesture.down(const Offset(100, 100)); | ||
|
|
||
| // Need 2 events to form a valid drag |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Super nit: Period at the end.
| final double endPosition = tester.getTopLeft(find.text('Middle of Scroll')).dy; | ||
|
|
||
| // Final position should be higher. | ||
| expect(endPosition, lessThan(startPosition)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, very likely we do. I'll put that in.
flutter/flutter@5517cc9...b9e86a5 2025-01-18 737941+loic-sharma@users.noreply.github.com Fix link to Linux custom embedder artifacts (flutter/flutter#161699) 2025-01-18 matanlurey@users.noreply.github.com Remove tests, GLFW examples, and non-artifact builds from `linux_host_engine`. (flutter/flutter#161786) 2025-01-18 jonahwilliams@google.com [Impeller] when mips are disabled, also disable from sampler options. (flutter/flutter#161765) 2025-01-18 lukepighetti@gmail.com revert removing Twitter, retain BlueSky (flutter/flutter#161803) 2025-01-17 yjbanov@google.com fix reorderable_list_test.dart (flutter/flutter#161836) 2025-01-17 kevinjchisholm@google.com [Release] Update the cherry-pick process. (flutter/flutter#161771) 2025-01-17 victorsanniay@gmail.com Reland "#143249 Autocomplete options width" (flutter/flutter#161695) 2025-01-17 a-siva@users.noreply.github.com Roll Dart to Version 3.8.0-1.0.dev (flutter/flutter#161781) 2025-01-17 jonahwilliams@google.com [Impeller] use 3 fences to synchronize AHB swapchains (like we do for KHR). (flutter/flutter#161767) 2025-01-17 jonahwilliams@google.com [Impeller] remove Adreno denylist entries. (flutter/flutter#161740) 2025-01-17 robert.ancell@canonical.com Refactor event redispatching (flutter/flutter#161701) 2025-01-17 jonahwilliams@google.com [Impellerc] correctly pad arrays of vec3s in reflector. (flutter/flutter#161697) 2025-01-17 jason-simmons@users.noreply.github.com Initialize dartLoader.rootDirectories so the Web stack trace mapper can convert package source paths (flutter/flutter#160383) 2025-01-16 robert.ancell@canonical.com Make fl_keyboard_manager_handle_event async (flutter/flutter#161637) 2025-01-16 kevmoo@users.noreply.github.com Update social links in readme (flutter/flutter#161778) 2025-01-16 robert.ancell@canonical.com Remove some stray printf debugging (flutter/flutter#161706) 2025-01-16 58529443+srujzs@users.noreply.github.com Set meta tag in default index (flutter/flutter#161493) 2025-01-16 andrewrkolos@gmail.com remove usage of `Usage` from build system (flutter/flutter#160663) 2025-01-16 andrewrkolos@gmail.com route CLI command usage information through the logger instead of using `print` (flutter/flutter#161533) 2025-01-16 matanlurey@users.noreply.github.com Enable duplicate `linux_host_engine_test`. (flutter/flutter#161613) 2025-01-16 58190796+MitchellGoodwin@users.noreply.github.com Do not block vertical drag gestures in CupertinoSheetRoute body (flutter/flutter#161696) 2025-01-16 jonahwilliams@google.com [Impeller] Update partial repaint to use a fullsize onscreen. (flutter/flutter#161626) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
|
Failed to create CP due to merge conflicts. |
) CupertinoSheetRoute is a new widget added in 3.29 as a part of #157568. #161696 fixes #161623, which was an issue where you could not put scrollable content in the sheet, which is expected behavior. CupertinoSheetRoute has been a highly requested widget so is expected to get a lot of use. Impacted users: anyone using the CupertinoSheetRoute with scrollable content, which should be a common use case. Impact description: not being able to scroll within the sheet would create a very bad first impression and leave the sheet unusable for a lot of apps. Workaround: None. Risk: This is a brand new widget, so none. Test Coverage (Are you confident that your fix is well-tested by automated tests?): Yes, the fix has regression tests. Validation Steps (What are the steps to validate that this fix works?): Create a CupertinoSheetRoute with scrollable content that expands past the size of the sheet. #161623 has a code sample.
flutter/flutter@5517cc9...b9e86a5 2025-01-18 737941+loic-sharma@users.noreply.github.com Fix link to Linux custom embedder artifacts (flutter/flutter#161699) 2025-01-18 matanlurey@users.noreply.github.com Remove tests, GLFW examples, and non-artifact builds from `linux_host_engine`. (flutter/flutter#161786) 2025-01-18 jonahwilliams@google.com [Impeller] when mips are disabled, also disable from sampler options. (flutter/flutter#161765) 2025-01-18 lukepighetti@gmail.com revert removing Twitter, retain BlueSky (flutter/flutter#161803) 2025-01-17 yjbanov@google.com fix reorderable_list_test.dart (flutter/flutter#161836) 2025-01-17 kevinjchisholm@google.com [Release] Update the cherry-pick process. (flutter/flutter#161771) 2025-01-17 victorsanniay@gmail.com Reland "#143249 Autocomplete options width" (flutter/flutter#161695) 2025-01-17 a-siva@users.noreply.github.com Roll Dart to Version 3.8.0-1.0.dev (flutter/flutter#161781) 2025-01-17 jonahwilliams@google.com [Impeller] use 3 fences to synchronize AHB swapchains (like we do for KHR). (flutter/flutter#161767) 2025-01-17 jonahwilliams@google.com [Impeller] remove Adreno denylist entries. (flutter/flutter#161740) 2025-01-17 robert.ancell@canonical.com Refactor event redispatching (flutter/flutter#161701) 2025-01-17 jonahwilliams@google.com [Impellerc] correctly pad arrays of vec3s in reflector. (flutter/flutter#161697) 2025-01-17 jason-simmons@users.noreply.github.com Initialize dartLoader.rootDirectories so the Web stack trace mapper can convert package source paths (flutter/flutter#160383) 2025-01-16 robert.ancell@canonical.com Make fl_keyboard_manager_handle_event async (flutter/flutter#161637) 2025-01-16 kevmoo@users.noreply.github.com Update social links in readme (flutter/flutter#161778) 2025-01-16 robert.ancell@canonical.com Remove some stray printf debugging (flutter/flutter#161706) 2025-01-16 58529443+srujzs@users.noreply.github.com Set meta tag in default index (flutter/flutter#161493) 2025-01-16 andrewrkolos@gmail.com remove usage of `Usage` from build system (flutter/flutter#160663) 2025-01-16 andrewrkolos@gmail.com route CLI command usage information through the logger instead of using `print` (flutter/flutter#161533) 2025-01-16 matanlurey@users.noreply.github.com Enable duplicate `linux_host_engine_test`. (flutter/flutter#161613) 2025-01-16 58190796+MitchellGoodwin@users.noreply.github.com Do not block vertical drag gestures in CupertinoSheetRoute body (flutter/flutter#161696) 2025-01-16 jonahwilliams@google.com [Impeller] Update partial repaint to use a fullsize onscreen. (flutter/flutter#161626) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
flutter/flutter@5517cc9...b9e86a5 2025-01-18 737941+loic-sharma@users.noreply.github.com Fix link to Linux custom embedder artifacts (flutter/flutter#161699) 2025-01-18 matanlurey@users.noreply.github.com Remove tests, GLFW examples, and non-artifact builds from `linux_host_engine`. (flutter/flutter#161786) 2025-01-18 jonahwilliams@google.com [Impeller] when mips are disabled, also disable from sampler options. (flutter/flutter#161765) 2025-01-18 lukepighetti@gmail.com revert removing Twitter, retain BlueSky (flutter/flutter#161803) 2025-01-17 yjbanov@google.com fix reorderable_list_test.dart (flutter/flutter#161836) 2025-01-17 kevinjchisholm@google.com [Release] Update the cherry-pick process. (flutter/flutter#161771) 2025-01-17 victorsanniay@gmail.com Reland "#143249 Autocomplete options width" (flutter/flutter#161695) 2025-01-17 a-siva@users.noreply.github.com Roll Dart to Version 3.8.0-1.0.dev (flutter/flutter#161781) 2025-01-17 jonahwilliams@google.com [Impeller] use 3 fences to synchronize AHB swapchains (like we do for KHR). (flutter/flutter#161767) 2025-01-17 jonahwilliams@google.com [Impeller] remove Adreno denylist entries. (flutter/flutter#161740) 2025-01-17 robert.ancell@canonical.com Refactor event redispatching (flutter/flutter#161701) 2025-01-17 jonahwilliams@google.com [Impellerc] correctly pad arrays of vec3s in reflector. (flutter/flutter#161697) 2025-01-17 jason-simmons@users.noreply.github.com Initialize dartLoader.rootDirectories so the Web stack trace mapper can convert package source paths (flutter/flutter#160383) 2025-01-16 robert.ancell@canonical.com Make fl_keyboard_manager_handle_event async (flutter/flutter#161637) 2025-01-16 kevmoo@users.noreply.github.com Update social links in readme (flutter/flutter#161778) 2025-01-16 robert.ancell@canonical.com Remove some stray printf debugging (flutter/flutter#161706) 2025-01-16 58529443+srujzs@users.noreply.github.com Set meta tag in default index (flutter/flutter#161493) 2025-01-16 andrewrkolos@gmail.com remove usage of `Usage` from build system (flutter/flutter#160663) 2025-01-16 andrewrkolos@gmail.com route CLI command usage information through the logger instead of using `print` (flutter/flutter#161533) 2025-01-16 matanlurey@users.noreply.github.com Enable duplicate `linux_host_engine_test`. (flutter/flutter#161613) 2025-01-16 58190796+MitchellGoodwin@users.noreply.github.com Do not block vertical drag gestures in CupertinoSheetRoute body (flutter/flutter#161696) 2025-01-16 jonahwilliams@google.com [Impeller] Update partial repaint to use a fullsize onscreen. (flutter/flutter#161626) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Fixes #161623.
Changes how the VerticalGestureRecognizer watches the sheet body. Before it stacked over the sheet and won all gesture arenas with vertical drags, so it didn't allow scrolling in the sheet. Now it has the sheet content as its child, so it will defer to child vertical gestures. This PR will allow scrolling to work in the sheet, but further work needs to be done to improve scrolling and drag to dismiss working together, see #161687.
Screen.Recording.2025-01-15.at.2.07.19.PM.mov
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.