diff --git a/packages/flutter/lib/src/gestures/events.dart b/packages/flutter/lib/src/gestures/events.dart index adeeee4834c..9dc764ae7b7 100644 --- a/packages/flutter/lib/src/gestures/events.dart +++ b/packages/flutter/lib/src/gestures/events.dart @@ -1035,10 +1035,7 @@ class PointerHoverEvent extends PointerEvent with _PointerEventDescription, _Cop super.tilt, super.synthesized, super.embedderId, - }) : // Dart doesn't support comparing enums with == in const contexts yet. - // https://github.com/dart-lang/language/issues/1811 - assert(!identical(kind, PointerDeviceKind.trackpad)), - super( + }) : super( down: false, pressure: 0.0, ); @@ -1156,7 +1153,9 @@ class PointerEnterEvent extends PointerEvent with _PointerEventDescription, _Cop super.down, super.synthesized, super.embedderId, - }) : assert(!identical(kind, PointerDeviceKind.trackpad)), + }) : // Dart doesn't support comparing enums with == in const contexts yet. + // https://github.com/dart-lang/language/issues/1811 + assert(!identical(kind, PointerDeviceKind.trackpad)), super( pressure: 0.0, ); diff --git a/packages/flutter/test/gestures/events_test.dart b/packages/flutter/test/gestures/events_test.dart index 09ac8a00d9d..c81cce29756 100644 --- a/packages/flutter/test/gestures/events_test.dart +++ b/packages/flutter/test/gestures/events_test.dart @@ -844,6 +844,17 @@ void main() { expect(event.synthesized, empty.synthesized); }); }); + + test('Ensure certain event types are allowed', () { + // Regression test for https://github.com/flutter/flutter/issues/107962 + expect(const PointerHoverEvent(kind: PointerDeviceKind.trackpad), isNotNull); + + // The test passes if it compiles. + }); + + test('Ensure certain event types are not allowed', () { + expect(() => PointerDownEvent(kind: PointerDeviceKind.trackpad), throwsAssertionError); + }); } void _expectTransformedEvent({