File tree 2 files changed +12
-1
lines changed
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 {
319
319
// so that [mouseIsConnected], which is decided by `_mouseStates`, is
320
320
// correct during the callbacks.
321
321
if (existingState == null ) {
322
- assert (event is ! PointerRemovedEvent );
322
+ if (event is PointerRemovedEvent )
323
+ return ;
323
324
_mouseStates[device] = _MouseState (initialEvent: event);
324
325
} else {
325
326
assert (event is ! PointerAddedEvent );
Original file line number Diff line number Diff line change @@ -133,6 +133,16 @@ void main() {
133
133
listenerLogs.clear ();
134
134
});
135
135
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
+
136
146
test ('should correctly handle multiple devices' , () {
137
147
final List <PointerEvent > events = < PointerEvent > [];
138
148
setUpWithOneAnnotation (logEvents: events);
You can’t perform that action at this time.
0 commit comments