getEventAtPos method

Event<T>? getEventAtPos(
  1. Offset pos
)

Implementation

Event<T>? getEventAtPos(Offset pos) {
  final Offset realPos = _toGridPos(pos);

  // Only events in the tapped day-column can contain the point, so scan that
  // one bucket instead of every event (#25). A tap outside the grid maps to
  // an absent bucket and simply finds nothing.
  final int day = (realPos.dx / config.blockWidth).floor();
  final List<Event<T>>? candidates = _eventsByDay[day];
  if (candidates == null) return null;

  for (final Event<T> event in candidates) {
    if (event.containsGridPoint(realPos)) {
      return event;
    }
  }

  return null;
}