startDrag method

void startDrag(
  1. Offset localPos
)

Begins a drag at localPos (planner-local coordinates) if it lands on an event. Called from the widget layer's gesture handlers — never from paint.

Implementation

void startDrag(Offset localPos) {
  if (_draggedEvent != null) return;
  final event = getEventAtPos(localPos);
  if (event == null) return;
  // Spanning events are read-only in this first cut (#47): a long-press on one
  // starts no drag, so it can't be moved or resized (it stays tappable for
  // edit/delete via double-tap and the context menu).
  if (event.entry.time.spansColumns) return;
  _draggedEvent = event;
  event.startDrag(_toGridPos(localPos));
  controller.triggerUpdate.value++;
}