diff options
author | Vladimir Belyavsky <belyavskyv@gmail.com> | 2023-11-12 12:04:12 +0300 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-11-13 15:43:35 +0000 |
commit | 7ea394eed6f70d4fb9b8a094db7bff40ea04f6bd (patch) | |
tree | dc672424dfbc80659cc4ef1f9190f4cbced4bb22 | |
parent | 8806b91afe96b449c7a6e7fb2a08aafcf832bfd4 (diff) |
QSystemTrayIcon: properly disconnect old menu in setContextMenu()
Amends 121a30ccef3b6306c1da4f415fe1305dbf2dd901
Fix the unfortunate mistake where oldMenu was not properly disconnected
from the contextMenuRequested() signal. This could lead to a situation
when several menus are displayed at the same time.
Fixes: QTBUG-78737
Pick-to: 6.5 6.2 5.15
Change-Id: Ice59841724207192eacd5a52b644f83159e09913
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit b71aa3c661797a916effd29171665ea838816595)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/widgets/util/qsystemtrayicon.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/widgets/util/qsystemtrayicon.cpp b/src/widgets/util/qsystemtrayicon.cpp index 4794cde6ad..55a243c834 100644 --- a/src/widgets/util/qsystemtrayicon.cpp +++ b/src/widgets/util/qsystemtrayicon.cpp @@ -171,7 +171,7 @@ void QSystemTrayIcon::setContextMenu(QMenu *menu) if (d->qpa_sys) { // Show the QMenu-based menu for QPA plugins that do not provide native menus if (oldMenu && !oldMenu->platformMenu()) - QObject::disconnect(d->qpa_sys, &QPlatformSystemTrayIcon::contextMenuRequested, menu, nullptr); + QObject::disconnect(d->qpa_sys, &QPlatformSystemTrayIcon::contextMenuRequested, oldMenu, nullptr); if (menu && !menu->platformMenu()) { QObject::connect(d->qpa_sys, &QPlatformSystemTrayIcon::contextMenuRequested, menu, |