@@ -288,6 +288,7 @@ class GestureDetector extends StatelessWidget {
288
288
this .behavior,
289
289
this .excludeFromSemantics = false ,
290
290
this .dragStartBehavior = DragStartBehavior .start,
291
+ this .supportedDevices,
291
292
}) : assert (excludeFromSemantics != null ),
292
293
assert (dragStartBehavior != null ),
293
294
assert (() {
@@ -1004,6 +1005,11 @@ class GestureDetector extends StatelessWidget {
1004
1005
/// * [DragGestureRecognizer.dragStartBehavior] , which gives an example for the different behaviors.
1005
1006
final DragStartBehavior dragStartBehavior;
1006
1007
1008
+ /// The kind of devices that are allowed to be recognized.
1009
+ ///
1010
+ /// If set to null, events from all device types will be recognized. Defaults to null.
1011
+ final Set <PointerDeviceKind >? supportedDevices;
1012
+
1007
1013
@override
1008
1014
Widget build (BuildContext context) {
1009
1015
final Map <Type , GestureRecognizerFactory > gestures = < Type , GestureRecognizerFactory > {};
@@ -1022,7 +1028,7 @@ class GestureDetector extends StatelessWidget {
1022
1028
onTertiaryTapCancel != null
1023
1029
) {
1024
1030
gestures[TapGestureRecognizer ] = GestureRecognizerFactoryWithHandlers <TapGestureRecognizer >(
1025
- () => TapGestureRecognizer (debugOwner: this ),
1031
+ () => TapGestureRecognizer (debugOwner: this , supportedDevices : supportedDevices ),
1026
1032
(TapGestureRecognizer instance) {
1027
1033
instance
1028
1034
..onTapDown = onTapDown
@@ -1043,7 +1049,7 @@ class GestureDetector extends StatelessWidget {
1043
1049
1044
1050
if (onDoubleTap != null ) {
1045
1051
gestures[DoubleTapGestureRecognizer ] = GestureRecognizerFactoryWithHandlers <DoubleTapGestureRecognizer >(
1046
- () => DoubleTapGestureRecognizer (debugOwner: this ),
1052
+ () => DoubleTapGestureRecognizer (debugOwner: this , supportedDevices : supportedDevices ),
1047
1053
(DoubleTapGestureRecognizer instance) {
1048
1054
instance
1049
1055
..onDoubleTapDown = onDoubleTapDown
@@ -1076,7 +1082,7 @@ class GestureDetector extends StatelessWidget {
1076
1082
onTertiaryLongPressUp != null ||
1077
1083
onTertiaryLongPressEnd != null ) {
1078
1084
gestures[LongPressGestureRecognizer ] = GestureRecognizerFactoryWithHandlers <LongPressGestureRecognizer >(
1079
- () => LongPressGestureRecognizer (debugOwner: this ),
1085
+ () => LongPressGestureRecognizer (debugOwner: this , supportedDevices : supportedDevices ),
1080
1086
(LongPressGestureRecognizer instance) {
1081
1087
instance
1082
1088
..onLongPressDown = onLongPressDown
@@ -1111,7 +1117,7 @@ class GestureDetector extends StatelessWidget {
1111
1117
onVerticalDragEnd != null ||
1112
1118
onVerticalDragCancel != null ) {
1113
1119
gestures[VerticalDragGestureRecognizer ] = GestureRecognizerFactoryWithHandlers <VerticalDragGestureRecognizer >(
1114
- () => VerticalDragGestureRecognizer (debugOwner: this ),
1120
+ () => VerticalDragGestureRecognizer (debugOwner: this , supportedDevices : supportedDevices ),
1115
1121
(VerticalDragGestureRecognizer instance) {
1116
1122
instance
1117
1123
..onDown = onVerticalDragDown
@@ -1131,7 +1137,7 @@ class GestureDetector extends StatelessWidget {
1131
1137
onHorizontalDragEnd != null ||
1132
1138
onHorizontalDragCancel != null ) {
1133
1139
gestures[HorizontalDragGestureRecognizer ] = GestureRecognizerFactoryWithHandlers <HorizontalDragGestureRecognizer >(
1134
- () => HorizontalDragGestureRecognizer (debugOwner: this ),
1140
+ () => HorizontalDragGestureRecognizer (debugOwner: this , supportedDevices : supportedDevices ),
1135
1141
(HorizontalDragGestureRecognizer instance) {
1136
1142
instance
1137
1143
..onDown = onHorizontalDragDown
@@ -1151,7 +1157,7 @@ class GestureDetector extends StatelessWidget {
1151
1157
onPanEnd != null ||
1152
1158
onPanCancel != null ) {
1153
1159
gestures[PanGestureRecognizer ] = GestureRecognizerFactoryWithHandlers <PanGestureRecognizer >(
1154
- () => PanGestureRecognizer (debugOwner: this ),
1160
+ () => PanGestureRecognizer (debugOwner: this , supportedDevices : supportedDevices ),
1155
1161
(PanGestureRecognizer instance) {
1156
1162
instance
1157
1163
..onDown = onPanDown
@@ -1167,7 +1173,7 @@ class GestureDetector extends StatelessWidget {
1167
1173
1168
1174
if (onScaleStart != null || onScaleUpdate != null || onScaleEnd != null ) {
1169
1175
gestures[ScaleGestureRecognizer ] = GestureRecognizerFactoryWithHandlers <ScaleGestureRecognizer >(
1170
- () => ScaleGestureRecognizer (debugOwner: this ),
1176
+ () => ScaleGestureRecognizer (debugOwner: this , supportedDevices : supportedDevices ),
1171
1177
(ScaleGestureRecognizer instance) {
1172
1178
instance
1173
1179
..onStart = onScaleStart
@@ -1184,7 +1190,7 @@ class GestureDetector extends StatelessWidget {
1184
1190
onForcePressUpdate != null ||
1185
1191
onForcePressEnd != null ) {
1186
1192
gestures[ForcePressGestureRecognizer ] = GestureRecognizerFactoryWithHandlers <ForcePressGestureRecognizer >(
1187
- () => ForcePressGestureRecognizer (debugOwner: this ),
1193
+ () => ForcePressGestureRecognizer (debugOwner: this , supportedDevices : supportedDevices ),
1188
1194
(ForcePressGestureRecognizer instance) {
1189
1195
instance
1190
1196
..onStart = onForcePressStart
0 commit comments