From 1e2d35d4880574b20537677729093df279658965 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Wed, 2 Sep 2015 10:36:40 +0200 Subject: QSystemTrayIcon: Fix double connection with qpa. install_sys_qpa() is called for each QSystemTrayIcon::show(), leading to spurious calls of user slots if the signal isn't disconnected on remove_sys_qpa(). Task-number: QTBUG-48068 Change-Id: Ic830250c71fee6b584550ab5aabf54289e478fcb Reviewed-by: Olivier Goffart (Woboq GmbH) Reviewed-by: Richard Rondu Reviewed-by: Shawn Rutledge --- src/widgets/util/qsystemtrayicon.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/widgets/util/qsystemtrayicon.cpp') diff --git a/src/widgets/util/qsystemtrayicon.cpp b/src/widgets/util/qsystemtrayicon.cpp index 358e4c38d6..df3c291840 100644 --- a/src/widgets/util/qsystemtrayicon.cpp +++ b/src/widgets/util/qsystemtrayicon.cpp @@ -693,6 +693,10 @@ void QSystemTrayIconPrivate::install_sys_qpa() void QSystemTrayIconPrivate::remove_sys_qpa() { + QObject::disconnect(qpa_sys, SIGNAL(activated(QPlatformSystemTrayIcon::ActivationReason)), + q_func(), SLOT(_q_emitActivated(QPlatformSystemTrayIcon::ActivationReason))); + QObject::disconnect(qpa_sys, &QPlatformSystemTrayIcon::messageClicked, + q_func(), &QSystemTrayIcon::messageClicked); qpa_sys->cleanup(); } -- cgit v1.2.3