    if (last_bearing) m_map->setBearing(*last_bearing);
    m_map->setZoom(util::map_val<float>(velocity_filter.x(), 0, 30, MAX_ZOOM, MIN_ZOOM));
    update();
  
    pan_counter = 0;
    zoom_counter = 0;
  }
  
  void MapWindow::mouseMoveEvent(QMouseEvent *ev) {
    QPointF delta = ev->localPos() - m_lastPos;
  
 
</s> remove     pan_counter = PAN_TIMEOUT;
 </s> add     interaction_counter = INTERACTION_TIMEOUT; </s> remove   zoom_counter = PAN_TIMEOUT;
 </s> add   interaction_counter = INTERACTION_TIMEOUT; </s> remove   } else {
    pan_counter--;
  }

  if (zoom_counter == 0) {
 </s> add  </s> remove const int PAN_TIMEOUT = 100;
 </s> add const int INTERACTION_TIMEOUT = 100; </s> remove   if (pan_counter == 0) {
 </s> add   if (interaction_counter == 0) {
  interaction_counter = 0;
    if (last_bearing) m_map->setBearing(*last_bearing);
    m_map->setZoom(util::map_val<float>(velocity_filter.x(), 0, 30, MAX_ZOOM, MIN_ZOOM));
    update();
  
  interaction_counter = 0;
  interaction_counter = 0;
  }
  
  void MapWindow::mouseMoveEvent(QMouseEvent *ev) {
    QPointF delta = ev->localPos() - m_lastPos;
  
keep keep keep keep replace replace keep keep keep keep keep
 ui/map: interactive counter fix (#29470)

* use interactive_counter instead of separate zoom and pan counters

* use interaction_counter instead of separate zoom and pan counters

* same styling

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com> 
selfdrive/ui/qt/maps/map.cc