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>
This commit is contained in:
parent
8806b91afe
commit
7ea394eed6
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user