Skip to content

Conversation

yakagami
Copy link
Contributor

@yakagami yakagami commented Mar 13, 2025

Adds the PointerDeviceKind of the scale start event to ScaleStartDetails, which is currently missing.

This is a bug according to #115061. Additionally, according to the docs:

Having both a pan gesture recognizer and a scale gesture recognizer is redundant; scale is a superset of pan. Just use the scale gesture recognizer.

See also #135936 for similar issues and the PRs fixing them.

If multiple pointers are contacting the screen at scale start, then the PointerDeviceKind of the first pointer is used. In practice this should be good enough as I don't know of any UI that expects you to use two different pointer kinds at the same time. However, if this is an issue, we could either give a list of pointers with their kinds or a set of all active PointerDeviceKinds. I don't think this is necessary though.

Closes #115061.

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: gestures flutter/packages/flutter/gestures repository. labels Mar 13, 2025
Copy link
Contributor

@justinmc justinmc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good except for a small docs change. Thanks for jumping in and making this change. I'm sure a lot of people have struggled with not having this value over the years when someone just needed to add it.

Comment on lines 138 to 140
/// The kind of the device that initiated the event. If multiple pointers are
/// touching the screen, the kind of the pointer device that first initiated
/// the event is used.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@yakagami
Copy link
Contributor Author

I'm sure a lot of people have struggled with not having this value over the years when someone just needed to add it.

Yeah, I was going though the f: gestures issues and noticed I would actually benefit from this myself for my package (https://pub.dev/packages/zoom_view). Right now I use a Listner to get the device kind. The specific reason I need it is because for trackpads you need to disambiguate scaling from panning differently than other pointers. With other pointers you can just check that pointerCount == 1 which is a pan and pointerCount == 2 is a scale. This doesn't work with trackpads because you pan with two fingers on a trackpad. #13102 is related here. I've been thinking if there was a way for the framework to handle that natively and might make another pull request for that.

Copy link
Contributor

@justinmc justinmc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

Please tag me for review if you open the trackpad PR. I've been thinking about better trackpad support recently.

Copy link
Contributor

@QuncCccccc QuncCccccc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM:)

@yakagami
Copy link
Contributor Author

@justinmc Sure. In the meantime I opened an issue to get some ideas on what the API should look like because I can't think of a good one: #166066

@justinmc justinmc added the autosubmit Merge PR when tree becomes green via auto submit App label Mar 27, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Mar 27, 2025
Merged via the queue into flutter:master with commit 479c4bb Mar 27, 2025
75 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Mar 27, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 28, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 28, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 28, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 28, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 29, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 30, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 30, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 1, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Apr 1, 2025
Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions)

Manual roll requested by [email protected]

flutter/flutter@1d954f4...05b5e79

2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202)
2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189)
2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185)
2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120)
2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181)
2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180)
2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998)
2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744)
2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149)
2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162)
2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161)
2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034)
2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035)
2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924)
2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681)
2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520)
2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324)
2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091)
2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144)
2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136)
2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938)
2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409)
2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709)
2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627)
2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080)
2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111)
2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031)
2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025)
2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942)
2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972)
2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103)
2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819)
2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346)
2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005)
2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395)
2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096)
2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077)
2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060)
2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940)
2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917)
2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059)
2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055)
2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046)
2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299)
...
CodixNinja pushed a commit to CodixNinja/packages that referenced this pull request May 15, 2025
… (#8960)

Manual roll Flutter from 1d954f4e96bd to 05b5e7910544 (225 revisions)

Manual roll requested by [email protected]

flutter/flutter@1d954f4...05b5e79

2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202)
2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189)
2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185)
2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120)
2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181)
2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180)
2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998)
2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744)
2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149)
2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162)
2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161)
2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034)
2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035)
2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924)
2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681)
2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520)
2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324)
2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091)
2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144)
2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136)
2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938)
2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409)
2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709)
2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627)
2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080)
2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111)
2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031)
2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025)
2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942)
2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972)
2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103)
2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819)
2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346)
2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005)
2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395)
2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096)
2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077)
2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060)
2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940)
2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917)
2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059)
2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055)
2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046)
2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
…8960)

Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions)

Manual roll requested by [email protected]

flutter/flutter@1d954f4...05b5e79

2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202)
2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189)
2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185)
2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120)
2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181)
2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180)
2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998)
2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744)
2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149)
2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162)
2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161)
2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034)
2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035)
2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924)
2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681)
2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520)
2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324)
2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091)
2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144)
2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136)
2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938)
2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409)
2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709)
2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627)
2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080)
2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111)
2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031)
2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025)
2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942)
2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972)
2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103)
2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819)
2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346)
2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005)
2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395)
2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096)
2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077)
2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060)
2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940)
2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917)
2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059)
2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055)
2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046)
2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299)
...
zhangyuang pushed a commit to zhangyuang/flutter-fork that referenced this pull request Jun 9, 2025
Adds the `PointerDeviceKind` of the scale start event to
`ScaleStartDetails`, which is currently missing.

This is a bug according to flutter#115061. Additionally, according to the docs:

>Having both a pan gesture recognizer and a scale gesture recognizer is
redundant; scale is a superset of pan. Just use the scale gesture
recognizer.

See also flutter#135936 for similar issues and the PRs fixing them.

If multiple pointers are contacting the screen at scale start, then the
`PointerDeviceKind` of the first pointer is used. In practice this
should be good enough as I don't know of any UI that expects you to use
two different pointer kinds at the same time. However, if this is an
issue, we could either give a list of pointers with their kinds or a set
of all active `PointerDeviceKind`s. I don't think this is necessary
though.

Closes flutter#115061.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
…8960)

Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions)

Manual roll requested by [email protected]

flutter/flutter@1d954f4...05b5e79

2025-03-29 [email protected] Roll Dart SDK from bcb7649e965a to b9c35e05feb5 (1 revision) (flutter/flutter#166202)
2025-03-29 [email protected] Roll Dart SDK from a7701559f616 to bcb7649e965a (1 revision) (flutter/flutter#166189)
2025-03-29 [email protected] Roll Dart SDK from 30ea8c4e622f to a7701559f616 (1 revision) (flutter/flutter#166185)
2025-03-29 [email protected] [fuchsia][sysmem2] switch to sysmem2 tokens (flutter/flutter#166120)
2025-03-29 [email protected] Roll Dart SDK from 65fe9906a916 to 30ea8c4e622f (2 revisions) (flutter/flutter#166181)
2025-03-29 [email protected] move around shaders in vertices uber 1/2 (flutter/flutter#166180)
2025-03-29 [email protected] [Impeller] optimize drawImageRect with blend and matrix color filter. (flutter/flutter#165998)
2025-03-28 [email protected] Add drawRSuperellipse support to mock_canvas. (flutter/flutter#165744)
2025-03-28 [email protected] Started clamping scaled antialias lines size (flutter/flutter#166149)
2025-03-28 [email protected] Roll Dart SDK from 4494ffead9af to 65fe9906a916 (7 revisions) (flutter/flutter#166162)
2025-03-28 [email protected] Remove bringup flag for customer tests (flutter/flutter#166161)
2025-03-28 [email protected] Add the ios-reviewers review team (flutter/flutter#166034)
2025-03-28 [email protected] [impeller] refactored LineContents to make it more testable, added tests (flutter/flutter#166035)
2025-03-28 [email protected] [Widget Inspector] Jump to source code of implementation widgets from Flutter Inspector (flutter/flutter#165924)
2025-03-28 [email protected] Make sure `LayoutBuilder` rebuild in an inactive route (flutter/flutter#154681)
2025-03-28 [email protected] [Impeller] allow newer powervr gpu to use Vulkan. (flutter/flutter#165520)
2025-03-28 [email protected] [web] Remove package:js in favor of dart:js_interop (flutter/flutter#165324)
2025-03-28 [email protected] [ Widget Previews ] Default to using Flutter Web for the widget preview environment (flutter/flutter#166091)
2025-03-28 [email protected] Mark Linux coverage as bringup (flutter/flutter#166144)
2025-03-28 [email protected] Roll Fuchsia Linux SDK from djUjSTaAtl0ETQSBR... to v7PGvypiiWLO8PbsZ... (flutter/flutter#166136)
2025-03-28 [email protected] [Impeller] split vertices uber into 2 shaders. (flutter/flutter#165938)
2025-03-28 [email protected] [flutter_tools] Fix VS Code package.json path on macOS with case-sensitive file system (flutter/flutter#163409)
2025-03-28 [email protected] Delete some verbose vm service logging (flutter/flutter#162709)
2025-03-28 [email protected] Get analytics welcome message under test (flutter/flutter#162627)
2025-03-28 [email protected] [ios][pv]fully revert the UIScreen.main deprecated API change (flutter/flutter#166080)
2025-03-28 [email protected] Roll Skia from b5b6f29d690f to 10f4cf9a817d (8 revisions) (flutter/flutter#166111)
2025-03-28 [email protected] [CI] remove check for exact golden files. (flutter/flutter#166031)
2025-03-28 [email protected] Move OpenGL context management to FlOpenGLManager (flutter/flutter#166025)
2025-03-27 [email protected] [android] only release background image readers on Android 14. (flutter/flutter#165942)
2025-03-27 [email protected] Refactor: Migrate Date picker from MaterialState and MaterialStateProperty (flutter/flutter#164972)
2025-03-27 [email protected] Mark Linux customer tests as flaky (flutter/flutter#166103)
2025-03-27 [email protected] Move app link settings task configuration to kotlin (flutter/flutter#165819)
2025-03-27 [email protected] Make iOS Flutter framework extension-safe (flutter/flutter#165346)
2025-03-27 [email protected] [ Widget Preview ] Display an error widget when an exception is thrown while defining the widget tree (flutter/flutter#166005)
2025-03-27 [email protected] Removed not working hyperlinks to ScriptCategory values (flutter/flutter#165395)
2025-03-27 [email protected] add PointerDeviceKind to ScaleStartDetails (flutter/flutter#165096)
2025-03-27 [email protected] Fix build_android_host_app_with_module_source device lab tests (flutter/flutter#166077)
2025-03-27 [email protected] Roll Skia from 11375a498f6b to b5b6f29d690f (4 revisions) (flutter/flutter#166060)
2025-03-27 [email protected] [Impeller] Move to the new location before rendering a stroke path contour containing only one point (flutter/flutter#165940)
2025-03-27 [email protected] Scale aa lines (flutter/flutter#165917)
2025-03-27 [email protected] Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (flutter/flutter#166059)
2025-03-27 [email protected] Roll Fuchsia Linux SDK from iScQOaYHg2aJcF1LX... to djUjSTaAtl0ETQSBR... (flutter/flutter#166055)
2025-03-27 [email protected] Roll Skia from 67a236832d64 to 11375a498f6b (2 revisions) (flutter/flutter#166046)
2025-03-27 [email protected] [flutter_tool] Handle RPCErrorKind.kConnectionDisposed (flutter/flutter#164299)
...
romanejaquez pushed a commit to romanejaquez/flutter that referenced this pull request Aug 14, 2025
Adds the `PointerDeviceKind` of the scale start event to
`ScaleStartDetails`, which is currently missing.

This is a bug according to flutter#115061. Additionally, according to the docs:

>Having both a pan gesture recognizer and a scale gesture recognizer is
redundant; scale is a superset of pan. Just use the scale gesture
recognizer.

See also flutter#135936 for similar issues and the PRs fixing them.

If multiple pointers are contacting the screen at scale start, then the
`PointerDeviceKind` of the first pointer is used. In practice this
should be good enough as I don't know of any UI that expects you to use
two different pointer kinds at the same time. However, if this is an
issue, we could either give a list of pointers with their kinds or a set
of all active `PointerDeviceKind`s. I don't think this is necessary
though.

Closes flutter#115061.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
f: gestures flutter/packages/flutter/gestures repository. framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

How to use scale gesture recognizer instead of pan recognizer
3 participants