2016-04-25 15:07:02 |
ogoffart |
bug |
|
|
added bug |
2016-04-25 15:13:39 |
Dmitry Shachnev |
bug |
|
|
added subscriber Dmitry Shachnev |
2016-04-25 15:37:31 |
Removed by request |
bug |
|
|
added subscriber Gilles |
2016-04-26 04:58:33 |
mweyen |
bug |
|
|
added subscriber mweyen |
2016-04-27 14:21:02 |
Johan Ehnberg |
bug |
|
|
added subscriber Johan Ehnberg |
2016-04-28 16:23:42 |
Felix Eckhofer |
bug |
|
|
added subscriber Felix Eckhofer |
2016-05-11 14:55:15 |
Launchpad Janitor |
branch linked |
|
lp:~mitya57/appmenu-qt5/lp1574699 |
|
2016-10-02 20:08:04 |
Adrianna Pińska |
bug |
|
|
added subscriber Adrianna Pińska |
2017-01-13 12:17:43 |
Anatoli |
bug watch added |
|
https://github.com/keepassxreboot/keepassxc/issues/102 |
|
2017-01-25 13:44:37 |
Anatoli |
bug |
|
|
added subscriber Anatoli |
2017-01-25 17:47:59 |
Dmitry Shachnev |
bug task added |
|
appmenu-qt5 (Ubuntu) |
|
2017-01-25 17:48:19 |
Dmitry Shachnev |
nominated for series |
|
Ubuntu Xenial |
|
2017-01-25 17:48:19 |
Dmitry Shachnev |
bug task added |
|
appmenu-qt5 (Ubuntu Xenial) |
|
2017-01-25 17:48:33 |
Dmitry Shachnev |
appmenu-qt5 (Ubuntu): status |
New |
Fix Released |
|
2017-01-25 17:48:52 |
Dmitry Shachnev |
appmenu-qt5 (Ubuntu Xenial): status |
New |
In Progress |
|
2017-01-25 17:48:52 |
Dmitry Shachnev |
appmenu-qt5 (Ubuntu Xenial): assignee |
|
Dmitry Shachnev (mitya57) |
|
2017-01-25 20:19:37 |
Dmitry Shachnev |
description |
in qppmenu-qt5 in ubuntu 16.4, the AppMenuPlatformSystemTrayIcon assumes there is only one instance of a QPlatformSystemTrayIcon: it register the same sbus 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. |
# 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. |
|
2017-01-26 18:44:04 |
Brian Murray |
appmenu-qt5 (Ubuntu Xenial): status |
In Progress |
Fix Committed |
|
2017-01-26 18:44:06 |
Brian Murray |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2017-01-26 18:44:13 |
Brian Murray |
bug |
|
|
added subscriber SRU Verification |
2017-01-26 18:44:22 |
Brian Murray |
tags |
|
verification-needed |
|
2017-02-07 19:57:27 |
Dmitry Shachnev |
tags |
verification-needed |
verification-done |
|
2017-02-09 03:42:58 |
Launchpad Janitor |
appmenu-qt5 (Ubuntu Xenial): status |
Fix Committed |
Fix Released |
|
2017-02-09 03:43:02 |
Chris J Arges |
removed subscriber Ubuntu Stable Release Updates Team |
|
|
|
2017-02-13 18:28:07 |
Launchpad Janitor |
branch linked |
|
lp:appmenu-qt5/16.04 |
|