onMouseMove method

  1. @mustCallSuper
void onMouseMove(
  1. MouseMoveEvent event
)

Implementation

@mustCallSuper
void onMouseMove(MouseMoveEvent event) {
  final updated = <TaggedComponent<MouseMoveCallbacks>>{};

  event.deliverAtPoint(
    rootComponent: gameRef,
    deliverToAll: true,
    eventHandler: (MouseMoveCallbacks component) {
      final tagged = TaggedComponent(event.pointerId, component);
      _records.add(tagged);
      updated.add(tagged);
      component.onMouseMove(event);
    },
  );

  final toRemove = <TaggedComponent<MouseMoveCallbacks>>{};
  for (final record in _records) {
    if (record.pointerId == event.pointerId && !updated.contains(record)) {
      // one last "exit" event
      record.component.onMouseMoveStop(event);
      toRemove.add(record);
    }
  }
  _records.removeAll(toRemove);
}