diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index bf8440cccf..7d2c710c52 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -1778,7 +1778,7 @@ void QGuiApplicationPrivate::processCloseEvent(QWindowSystemInterfacePrivate::Cl QCloseEvent event; QGuiApplication::sendSpontaneousEvent(e->window.data(), &event); if (e->accepted) { - *(e->accepted) = !event.isAccepted(); + *(e->accepted) = event.isAccepted(); } } diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index 18dd3156c6..675ea77b30 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -538,9 +538,10 @@ void QWidgetWindow::handleResizeEvent(QResizeEvent *event) } } -void QWidgetWindow::handleCloseEvent(QCloseEvent *) +void QWidgetWindow::handleCloseEvent(QCloseEvent *event) { - m_widget->d_func()->close_helper(QWidgetPrivate::CloseWithSpontaneousEvent); + bool is_closing = m_widget->d_func()->close_helper(QWidgetPrivate::CloseWithSpontaneousEvent); + event->setAccepted(is_closing); } #ifndef QT_NO_WHEELEVENT