    layout->addWidget(nvg);
    QObject::connect(this, &OnroadWindow::update, nvg, &NvgWindow::update);
  
    alerts = new OnroadAlerts(this);
    QObject::connect(this, &OnroadWindow::update, alerts, &OnroadAlerts::update);
    QObject::connect(this, &OnroadWindow::offroadTransition, alerts, &OnroadAlerts::offroadTransition);
  
    // hack to align the onroad alerts, better way to do this?
    QVBoxLayout *alerts_container = new QVBoxLayout(this);
    alerts_container->setMargin(0);
 
</s> remove #include "selfdrive/ui/qt/qt_window.h"
 </s> add #include "selfdrive/ui/qt/util.h" </s> remove   if (ui_state.scene.started != started_prev) {
 </s> add   if (ui_state.scene.started != started_prev || ui_state.sm->frame == 1) { </s> remove class OnroadAlerts : public QFrame {
 </s> add class OnroadAlerts : public QWidget {
  QObject::connect(this, &OnroadWindow::update, alerts, &OnroadAlerts::updateState);
    layout->addWidget(nvg);
    QObject::connect(this, &OnroadWindow::update, nvg, &NvgWindow::update);
  
    alerts = new OnroadAlerts(this);
  QObject::connect(this, &OnroadWindow::update, alerts, &OnroadAlerts::updateState);
    QObject::connect(this, &OnroadWindow::offroadTransition, alerts, &OnroadAlerts::offroadTransition);
  
    // hack to align the onroad alerts, better way to do this?
    QVBoxLayout *alerts_container = new QVBoxLayout(this);
    alerts_container->setMargin(0);
keep keep keep keep replace keep keep keep keep keep
 match nvg onroad alerts (#20854) 
selfdrive/ui/qt/onroad.cc