From 46cadf7b48288fce4de6147ae38de493354c23d0 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Mon, 22 Nov 2021 17:39:20 +0100 Subject: [PATCH] QSystemTrayIcon example: ignore non-spontaneous QCloseEvent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apparently this code is needed on other platforms now, not only macOS. Pick-to: 6.2 Fixes: QTBUG-98504 Change-Id: Ie0a7e38609e8fc8c11915784dd3652a3517bb639 Reviewed-by: Paul Olav Tvete Reviewed-by: Jan Arve Sæther --- examples/widgets/desktop/systray/doc/src/systray.qdoc | 8 ++++---- examples/widgets/desktop/systray/window.cpp | 5 +---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/examples/widgets/desktop/systray/doc/src/systray.qdoc b/examples/widgets/desktop/systray/doc/src/systray.qdoc index ae7e925bd82..3a2c1bfa6be 100644 --- a/examples/widgets/desktop/systray/doc/src/systray.qdoc +++ b/examples/widgets/desktop/systray/doc/src/systray.qdoc @@ -173,11 +173,11 @@ We have reimplemented the QWidget::closeEvent() event handler to receive widget close events, showing the above message to the - users when they are closing the editor window. On \macos we need to + users when they are closing the editor window. We need to avoid showing the message and accepting the close event when the - user really intends to quit the application, that is, when the - user has triggered "Quit" in the menu bar or pressed the Command+Q - shortcut. + user really intends to quit the application: that is, when the + user has triggered "Quit" in the menu bar, or in the tray icon's + context menu, or pressed Command+Q shortcut on \macOS. In addition to the functions and slots discussed above, we have also implemented several convenience functions to simplify the diff --git a/examples/widgets/desktop/systray/window.cpp b/examples/widgets/desktop/systray/window.cpp index e62b5fc0d0c..f14a4e578fa 100644 --- a/examples/widgets/desktop/systray/window.cpp +++ b/examples/widgets/desktop/systray/window.cpp @@ -111,11 +111,8 @@ void Window::setVisible(bool visible) //! [2] void Window::closeEvent(QCloseEvent *event) { -#ifdef Q_OS_MACOS - if (!event->spontaneous() || !isVisible()) { + if (!event->spontaneous() || !isVisible()) return; - } -#endif if (trayIcon->isVisible()) { QMessageBox::information(this, tr("Systray"), tr("The program will keep running in the "