onMouseMove method

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

Implementation

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

  event.deliverAtPoint(
    rootComponent: game,
    deliverToAll: true,
    eventHandler: (PointerMoveCallbacks component) {
      final tagged = TaggedComponent(event.pointerId, component);
      _records.add(tagged);
      updated.add(tagged);
      component.onPointerMove(event);
    },
  );

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