diff options
-rw-r--r-- | src/widgets/kernel/qapplication.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 3309b4be06..9bc1576dc6 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -2743,9 +2743,11 @@ bool QApplicationPrivate::shouldQuit() QWindowList processedWindows; for (int i = 0; i < list.size(); ++i) { QWidget *w = list.at(i); - processedWindows.push_back(w->windowHandle()); - if (w->isVisible() && !w->parentWidget() && w->testAttribute(Qt::WA_QuitOnClose)) - return false; + if (QWindow *window = w->windowHandle()) { // Menus, popup widgets may not have a QWindow + processedWindows.push_back(window); + if (w->isVisible() && !w->parentWidget() && w->testAttribute(Qt::WA_QuitOnClose)) + return false; + } } return QGuiApplicationPrivate::shouldQuitInternal(processedWindows); } |