    QScrollerProperties sp = scroller->scrollerProperties();
  
    sp.setScrollMetric(QScrollerProperties::VerticalOvershootPolicy, QVariant::fromValue<QScrollerProperties::OvershootPolicy>(QScrollerProperties::OvershootAlwaysOff));
    sp.setScrollMetric(QScrollerProperties::HorizontalOvershootPolicy, QVariant::fromValue<QScrollerProperties::OvershootPolicy>(QScrollerProperties::OvershootAlwaysOff));
  
    scroller->grabGesture(this->viewport(), QScroller::LeftMouseButtonGesture);
    scroller->setScrollerProperties(sp);
  }
  
  void ScrollView::hideEvent(QHideEvent *e) {
 
</s> remove   emit clicked();
 </s> add   if (rect().contains(event->pos())) {
    emit clicked();
  } </s> remove   void mouseReleaseEvent(QMouseEvent *event) override { emit clicked(); }
 </s> add   void mouseReleaseEvent(QMouseEvent *event) override { 
    if (rect().contains(event->pos())) {
      emit clicked(); 
    }
  }
  sp.setScrollMetric(QScrollerProperties::MousePressEventDelay, 0.01);
    QScrollerProperties sp = scroller->scrollerProperties();
  
    sp.setScrollMetric(QScrollerProperties::VerticalOvershootPolicy, QVariant::fromValue<QScrollerProperties::OvershootPolicy>(QScrollerProperties::OvershootAlwaysOff));
    sp.setScrollMetric(QScrollerProperties::HorizontalOvershootPolicy, QVariant::fromValue<QScrollerProperties::OvershootPolicy>(QScrollerProperties::OvershootAlwaysOff));
  sp.setScrollMetric(QScrollerProperties::MousePressEventDelay, 0.01);
    scroller->grabGesture(this->viewport(), QScroller::LeftMouseButtonGesture);
    scroller->setScrollerProperties(sp);
  }
  
  void ScrollView::hideEvent(QHideEvent *e) {
keep keep keep keep replace keep keep keep keep keep
 UI: fix unable to scroll on 'Regulatory' page (#25014)

* fix unable to scroll on 'Regulatory' page

deleteLater after hide

* remove alert

* override exec

* set MousePressEventDelay to 0

* set to 0.01

* cleanup

* check event->pos() 
selfdrive/ui/qt/widgets/scrollview.cc