File tree Expand file tree Collapse file tree 2 files changed +12
-1
lines changed
Expand file tree Collapse file tree 2 files changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -319,7 +319,8 @@ class MouseTracker extends ChangeNotifier {
319319 // so that [mouseIsConnected], which is decided by `_mouseStates`, is
320320 // correct during the callbacks.
321321 if (existingState == null ) {
322- assert (event is ! PointerRemovedEvent );
322+ if (event is PointerRemovedEvent )
323+ return ;
323324 _mouseStates[device] = _MouseState (initialEvent: event);
324325 } else {
325326 assert (event is ! PointerAddedEvent );
Original file line number Diff line number Diff line change @@ -133,6 +133,16 @@ void main() {
133133 listenerLogs.clear ();
134134 });
135135
136+ // Regression test for https://github.com/flutter/flutter/issues/90838
137+ test ('should not crash if the first event is a Removed event' , () {
138+ final List <PointerEvent > events = < PointerEvent > [];
139+ setUpWithOneAnnotation (logEvents: events);
140+ ui.window.onPointerDataPacket !(ui.PointerDataPacket (data: < ui.PointerData > [
141+ _pointerData (PointerChange .remove, Offset .zero),
142+ ]));
143+ events.clear ();
144+ });
145+
136146 test ('should correctly handle multiple devices' , () {
137147 final List <PointerEvent > events = < PointerEvent > [];
138148 setUpWithOneAnnotation (logEvents: events);
You can’t perform that action at this time.
0 commit comments