@@ -510,7 +510,7 @@ class _PointerAdapter extends _BaseAdapter with _WheelEventListenerMixin {
510510 @override
511511 void setup () {
512512 _addPointerEventListener ('pointerdown' , (html.PointerEvent event) {
513- final int device = event.pointerId ! ;
513+ final int device = _getPointerId ( event) ;
514514 final List <ui.PointerData > pointerData = < ui.PointerData > [];
515515 final _ButtonSanitizer sanitizer = _ensureSanitizer (device);
516516 final _SanitizedDetails ? up =
@@ -528,7 +528,7 @@ class _PointerAdapter extends _BaseAdapter with _WheelEventListenerMixin {
528528 });
529529
530530 _addPointerEventListener ('pointermove' , (html.PointerEvent event) {
531- final int device = event.pointerId ! ;
531+ final int device = _getPointerId ( event) ;
532532 final _ButtonSanitizer sanitizer = _ensureSanitizer (device);
533533 final List <ui.PointerData > pointerData = < ui.PointerData > [];
534534 final List <html.PointerEvent > expandedEvents = _expandEvents (event);
@@ -544,7 +544,7 @@ class _PointerAdapter extends _BaseAdapter with _WheelEventListenerMixin {
544544 }, acceptOutsideGlasspane: true );
545545
546546 _addPointerEventListener ('pointerup' , (html.PointerEvent event) {
547- final int device = event.pointerId ! ;
547+ final int device = _getPointerId ( event) ;
548548 final List <ui.PointerData > pointerData = < ui.PointerData > [];
549549 final _SanitizedDetails ? details = _getSanitizer (device).sanitizeUpEvent (buttons: event.buttons);
550550 _removePointerIfUnhoverable (event);
@@ -557,7 +557,7 @@ class _PointerAdapter extends _BaseAdapter with _WheelEventListenerMixin {
557557 // A browser fires cancel event if it concludes the pointer will no longer
558558 // be able to generate events (example: device is deactivated)
559559 _addPointerEventListener ('pointercancel' , (html.PointerEvent event) {
560- final int device = event.pointerId ! ;
560+ final int device = _getPointerId ( event) ;
561561 final List <ui.PointerData > pointerData = < ui.PointerData > [];
562562 final _SanitizedDetails details = _getSanitizer (device).sanitizeCancelEvent ();
563563 _removePointerIfUnhoverable (event);
@@ -581,10 +581,6 @@ class _PointerAdapter extends _BaseAdapter with _WheelEventListenerMixin {
581581 assert (event != null ); // ignore: unnecessary_null_comparison
582582 assert (details != null ); // ignore: unnecessary_null_comparison
583583 final ui.PointerDeviceKind kind = _pointerTypeToDeviceKind (event.pointerType! );
584- // We force `device: _mouseDeviceId` on mouse pointers because Wheel events
585- // might come before any PointerEvents, and since wheel events don't contain
586- // pointerId we always assign `device: _mouseDeviceId` to them.
587- final int device = kind == ui.PointerDeviceKind .mouse ? _mouseDeviceId : event.pointerId! ;
588584 final double tilt = _computeHighestTilt (event);
589585 final Duration timeStamp = _BaseAdapter ._eventTimeStampToDuration (event.timeStamp! );
590586 _pointerDataConverter.convert (
@@ -593,7 +589,7 @@ class _PointerAdapter extends _BaseAdapter with _WheelEventListenerMixin {
593589 timeStamp: timeStamp,
594590 kind: kind,
595591 signalKind: ui.PointerSignalKind .none,
596- device: device ,
592+ device: _getPointerId (event) ,
597593 physicalX: event.client.x.toDouble () * ui.window.devicePixelRatio,
598594 physicalY: event.client.y.toDouble () * ui.window.devicePixelRatio,
599595 buttons: details.buttons,
@@ -632,6 +628,14 @@ class _PointerAdapter extends _BaseAdapter with _WheelEventListenerMixin {
632628 }
633629 }
634630
631+ int _getPointerId (html.PointerEvent event) {
632+ // We force `device: _mouseDeviceId` on mouse pointers because Wheel events
633+ // might come before any PointerEvents, and since wheel events don't contain
634+ // pointerId we always assign `device: _mouseDeviceId` to them.
635+ final ui.PointerDeviceKind kind = _pointerTypeToDeviceKind (event.pointerType! );
636+ return kind == ui.PointerDeviceKind .mouse ? _mouseDeviceId : event.pointerId! ;
637+ }
638+
635639 /// Tilt angle is -90 to + 90. Take maximum deflection and convert to radians.
636640 double _computeHighestTilt (html.PointerEvent e) =>
637641 (e.tiltX! .abs () > e.tiltY! .abs () ? e.tiltX : e.tiltY)! .toDouble () /
0 commit comments