Marking verification-done based on comment #8 and my own testing in https://code.launchpad.net/~mitya57/appmenu- qt5/lp1574699/+merge/294381/comments/768173.
** Tags removed: verification-needed ** Tags added: verification-done -- You received this bug notification because you are a member of DX Packages, which is subscribed to appmenu-qt5 in Ubuntu. https://bugs.launchpad.net/bugs/1574699 Title: All QSystemTrayIcon have the same icon, and QSystemTrayIcon::isSystemTrayAvailable remove all QSystemTrayIcon Status in appmenu-qt5: New Status in appmenu-qt5 package in Ubuntu: Fix Released Status in appmenu-qt5 source package in Xenial: Fix Committed Bug description: # Impact This affects all Qt applications that use QSystemTrayIcon::isSystemTrayAvailable, in Unity environment. Confirmed examples are owncloud-client and keepassxc, but there may be more applications. # Test Case See the original description below for the test case in C++. # Proposed Fix The proposed fix is identical to what was uploaded to Yakkety as version 0.3.0+16.10.20160628.1-0ubuntu1. The fix is using unique connections for all AppMenuPlatformSystemTrayIcon instances. # Regression Potential The fix is in Yakkety since June and in Zesty, and nobody complained so far. So it should not cause any regressions. ----------------------------------------------------------------------------- in appmenu-qt5 in ubuntu 16.04, the AppMenuPlatformSystemTrayIcon assumes there is only one instance of a QPlatformSystemTrayIcon: it register the same dbus name for all the instances. In fact, there is one instance of QPlatformSystemTrayIcon per instance of QSystemTrayIcon, and one temporary is created for QSystemTrayIcon::isSystemTrayAvailable. This breaks the owncloud client [issue https://github.com/owncloud/client/issues/4693 ] This example reproduces the problem: ``` #include <QtWidgets> int main(int argc, char *argv[]) { QApplication a(argc, argv); QImage img(64,64, QImage::Format_ARGB32); img.fill(Qt::red); QSystemTrayIcon sti(QIcon(QPixmap::fromImage(img))); sti.show(); QSystemTrayIcon::isSystemTrayAvailable(); // with this line, the QSystemTrayIcon does not appear // comment the previous line to see that the QSystemTrayIcon works and that there is a bug in that line return a.exec(); } ``` This testcase shows that the AppMenuPlatformSystemTrayIcon::~AppMenuPlatformSystemTrayIcon called by the temporary object created inside QSystemTrayIcon::isSystemTrayAvailable unregisters the icon. To manage notifications about this bug go to: https://bugs.launchpad.net/appmenu-qt5/+bug/1574699/+subscriptions -- Mailing list: https://launchpad.net/~dx-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~dx-packages More help : https://help.launchpad.net/ListHelp

