-
Notifications
You must be signed in to change notification settings - Fork 29.7k
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 [email protected] Fix link to Linux custom embedder artifacts (flutter/flutter#161699) 2025-01-18 [email protected] Remove tests, GLFW examples, and non-artifact builds from `linux_host_engine`. (flutter/flutter#161786) 2025-01-18 [email protected] [Impeller] when mips are disabled, also disable from sampler options. (flutter/flutter#161765) 2025-01-18 [email protected] revert removing Twitter, retain BlueSky (flutter/flutter#161803) 2025-01-17 [email protected] fix reorderable_list_test.dart (flutter/flutter#161836) 2025-01-17 [email protected] [Release] Update the cherry-pick process. (flutter/flutter#161771) 2025-01-17 [email protected] Reland "#143249 Autocomplete options width" (flutter/flutter#161695) 2025-01-17 [email protected] Roll Dart to Version 3.8.0-1.0.dev (flutter/flutter#161781) 2025-01-17 [email protected] [Impeller] use 3 fences to synchronize AHB swapchains (like we do for KHR). (flutter/flutter#161767) 2025-01-17 [email protected] [Impeller] remove Adreno denylist entries. (flutter/flutter#161740) 2025-01-17 [email protected] Refactor event redispatching (flutter/flutter#161701) 2025-01-17 [email protected] [Impellerc] correctly pad arrays of vec3s in reflector. (flutter/flutter#161697) 2025-01-17 [email protected] Initialize dartLoader.rootDirectories so the Web stack trace mapper can convert package source paths (flutter/flutter#160383) 2025-01-16 [email protected] Make fl_keyboard_manager_handle_event async (flutter/flutter#161637) 2025-01-16 [email protected] Update social links in readme (flutter/flutter#161778) 2025-01-16 [email protected] Remove some stray printf debugging (flutter/flutter#161706) 2025-01-16 [email protected] Set meta tag in default index (flutter/flutter#161493) 2025-01-16 [email protected] remove usage of `Usage` from build system (flutter/flutter#160663) 2025-01-16 [email protected] route CLI command usage information through the logger instead of using `print` (flutter/flutter#161533) 2025-01-16 [email protected] Enable duplicate `linux_host_engine_test`. (flutter/flutter#161613) 2025-01-16 [email protected] Do not block vertical drag gestures in CupertinoSheetRoute body (flutter/flutter#161696) 2025-01-16 [email protected] [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 [email protected] 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 [email protected] Fix link to Linux custom embedder artifacts (flutter/flutter#161699) 2025-01-18 [email protected] Remove tests, GLFW examples, and non-artifact builds from `linux_host_engine`. (flutter/flutter#161786) 2025-01-18 [email protected] [Impeller] when mips are disabled, also disable from sampler options. (flutter/flutter#161765) 2025-01-18 [email protected] revert removing Twitter, retain BlueSky (flutter/flutter#161803) 2025-01-17 [email protected] fix reorderable_list_test.dart (flutter/flutter#161836) 2025-01-17 [email protected] [Release] Update the cherry-pick process. (flutter/flutter#161771) 2025-01-17 [email protected] Reland "#143249 Autocomplete options width" (flutter/flutter#161695) 2025-01-17 [email protected] Roll Dart to Version 3.8.0-1.0.dev (flutter/flutter#161781) 2025-01-17 [email protected] [Impeller] use 3 fences to synchronize AHB swapchains (like we do for KHR). (flutter/flutter#161767) 2025-01-17 [email protected] [Impeller] remove Adreno denylist entries. (flutter/flutter#161740) 2025-01-17 [email protected] Refactor event redispatching (flutter/flutter#161701) 2025-01-17 [email protected] [Impellerc] correctly pad arrays of vec3s in reflector. (flutter/flutter#161697) 2025-01-17 [email protected] Initialize dartLoader.rootDirectories so the Web stack trace mapper can convert package source paths (flutter/flutter#160383) 2025-01-16 [email protected] Make fl_keyboard_manager_handle_event async (flutter/flutter#161637) 2025-01-16 [email protected] Update social links in readme (flutter/flutter#161778) 2025-01-16 [email protected] Remove some stray printf debugging (flutter/flutter#161706) 2025-01-16 [email protected] Set meta tag in default index (flutter/flutter#161493) 2025-01-16 [email protected] remove usage of `Usage` from build system (flutter/flutter#160663) 2025-01-16 [email protected] route CLI command usage information through the logger instead of using `print` (flutter/flutter#161533) 2025-01-16 [email protected] Enable duplicate `linux_host_engine_test`. (flutter/flutter#161613) 2025-01-16 [email protected] Do not block vertical drag gestures in CupertinoSheetRoute body (flutter/flutter#161696) 2025-01-16 [email protected] [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 [email protected] 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 [email protected] Fix link to Linux custom embedder artifacts (flutter/flutter#161699) 2025-01-18 [email protected] Remove tests, GLFW examples, and non-artifact builds from `linux_host_engine`. (flutter/flutter#161786) 2025-01-18 [email protected] [Impeller] when mips are disabled, also disable from sampler options. (flutter/flutter#161765) 2025-01-18 [email protected] revert removing Twitter, retain BlueSky (flutter/flutter#161803) 2025-01-17 [email protected] fix reorderable_list_test.dart (flutter/flutter#161836) 2025-01-17 [email protected] [Release] Update the cherry-pick process. (flutter/flutter#161771) 2025-01-17 [email protected] Reland "#143249 Autocomplete options width" (flutter/flutter#161695) 2025-01-17 [email protected] Roll Dart to Version 3.8.0-1.0.dev (flutter/flutter#161781) 2025-01-17 [email protected] [Impeller] use 3 fences to synchronize AHB swapchains (like we do for KHR). (flutter/flutter#161767) 2025-01-17 [email protected] [Impeller] remove Adreno denylist entries. (flutter/flutter#161740) 2025-01-17 [email protected] Refactor event redispatching (flutter/flutter#161701) 2025-01-17 [email protected] [Impellerc] correctly pad arrays of vec3s in reflector. (flutter/flutter#161697) 2025-01-17 [email protected] Initialize dartLoader.rootDirectories so the Web stack trace mapper can convert package source paths (flutter/flutter#160383) 2025-01-16 [email protected] Make fl_keyboard_manager_handle_event async (flutter/flutter#161637) 2025-01-16 [email protected] Update social links in readme (flutter/flutter#161778) 2025-01-16 [email protected] Remove some stray printf debugging (flutter/flutter#161706) 2025-01-16 [email protected] Set meta tag in default index (flutter/flutter#161493) 2025-01-16 [email protected] remove usage of `Usage` from build system (flutter/flutter#160663) 2025-01-16 [email protected] route CLI command usage information through the logger instead of using `print` (flutter/flutter#161533) 2025-01-16 [email protected] Enable duplicate `linux_host_engine_test`. (flutter/flutter#161613) 2025-01-16 [email protected] Do not block vertical drag gestures in CupertinoSheetRoute body (flutter/flutter#161696) 2025-01-16 [email protected] [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 [email protected] 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.