   Watch.minutes = minutes;
   Watch.hours = hours;
   Watch.millis_adjust = millis_adjust;
+  Watch.seconds_since_last_adjust = 0;
   Watch.needs_redraw = 1;
 }
 

  millis_delta_t elapsed = now - W.next_second_millis;

  if (elapsed > 0) {
    W.next_second_millis += 1000 + W.millis_adjust;

    uint8_t changes = 1;


  // watch_tick returns.
  uint8_t needs_redraw;

  // This is a milli-second correction that is applied every 1000
  // seconds, which means it is a part-per-million correction.
  //
  // If the watch is running fast, then we want to make this positive.
  //
  // If the watch is running slow, then we want to make this negative.
  //
  // If the watch is exactly on time, then it shuold be 0.
  millis_delta_t millis_adjust;

  // number of seconds since we last applied millis_adjust.
  uint16_t seconds_since_last_adjust;

  uint8_t color;

} Watch_t;

uint8_t _watch_days_per_month[] = {
