@@ -237,8 +237,8 @@ BrowserWindow::BrowserWindow(Vector<URL::URL> const& initial_urls, IsPopupWindow
237237
238238 set_current_tab (tab);
239239 });
240- QObject::connect (m_tabs_container, &QTabWidget::tabCloseRequested, this , &BrowserWindow::close_tab );
241- QObject::connect (close_current_tab_action, &QAction::triggered, this , &BrowserWindow::close_current_tab );
240+ QObject::connect (m_tabs_container, &QTabWidget::tabCloseRequested, this , &BrowserWindow::request_to_close_tab );
241+ QObject::connect (close_current_tab_action, &QAction::triggered, this , &BrowserWindow::request_to_close_current_tab );
242242
243243 for (int i = 0 ; i <= 7 ; ++i) {
244244 new QShortcut (QKeySequence (Qt::CTRL | static_cast <Qt::Key>(Qt::Key_1 + i)), this , [this , i] {
@@ -378,7 +378,7 @@ void BrowserWindow::activate_tab(int index)
378378 m_tabs_container->setCurrentIndex (index);
379379}
380380
381- void BrowserWindow::close_tab (int index)
381+ void BrowserWindow::definitely_close_tab (int index)
382382{
383383 auto * tab = m_tabs_container->widget (index);
384384 m_tabs_container->removeTab (index);
@@ -398,9 +398,15 @@ void BrowserWindow::open_file()
398398 m_current_tab->open_file ();
399399}
400400
401- void BrowserWindow::close_current_tab ( )
401+ void BrowserWindow::request_to_close_tab ( int index )
402402{
403- close_tab (m_tabs_container->currentIndex ());
403+ auto * tab = as<Tab>(m_tabs_container->widget (index));
404+ tab->request_close ();
405+ }
406+
407+ void BrowserWindow::request_to_close_current_tab ()
408+ {
409+ request_to_close_tab (m_tabs_container->currentIndex ());
404410}
405411
406412int BrowserWindow::tab_index (Tab* tab)
@@ -452,7 +458,7 @@ void BrowserWindow::create_close_button_for_tab(Tab* tab)
452458
453459 connect (button, &QPushButton::clicked, this , [this , tab]() {
454460 auto index = m_tabs_container->indexOf (tab);
455- close_tab (index);
461+ request_to_close_tab (index);
456462 });
457463
458464 m_tabs_container->tabBar ()->setTabButton (index, position, button);
@@ -625,7 +631,7 @@ bool BrowserWindow::eventFilter(QObject* obj, QEvent* event)
625631 if (obj == m_tabs_container) {
626632 auto const tab_index = m_tabs_container->tabBar ()->tabAt (mouse_event->pos ());
627633 if (tab_index != -1 ) {
628- close_tab (tab_index);
634+ request_to_close_tab (tab_index);
629635 return true ;
630636 }
631637 }
0 commit comments