Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.8.0
-
None
-
Ubuntu 16.04 LTS (Unity), Qt 5.8, 64bit
Ubuntu 16.10 (Unity), Qt 5.8, 64bit
Kubuntu 16.10 (KDE), Qt 5.7, 64bit
Description
On some Linux platforms (see Environment) QSystemTrayIcon's context menu (QMenu) does not emit some signals and some slots & functions are not working (or are incorrect).
1) contextMenu does not emit aboutToHide signal. doesn't matter if closed by triggering a menu action or by clicking outside of the menu (here is a related bug, older Qt)
2) contextMenu slot hide() is not working. However, slot show() displays some kind of copy of the systray menu, it appears in the upper left corner of the screen. For the rest of the report I will reference to it as a ghost menu.
3) contextMenu functions isVisible() / isHidden() says that menu is hidden, even though it is clearly visible and corrrectly displayed. However, if the ghost menu is displayed, functions properly react to the ghost menu's state.
4) contextMenu function move() is not working. However, it works with the ghost menu - moving it properly.
5) contextMenu items signal hovered when hovering over QActions is not emitted. However, it is emitted if ghost menu is displayed and item is selected in the ghost menu.
It looks like the context menu is not properly 'connected' with systray icon and is not reflecting it states/attributes, instead it is reflecting state of the unwanted ghost menu. Probably some other contextMenu functions are not working neither, the points stated above are just tested & confirmed examples.
I tested all the stated bugs on Ubuntu and Kubuntu and they may appear on other platforms, too. However, my tip is that the bugs are specific for Unity and Plasma, because on both Unity and Plasma, Qt is using the Status Notifier protocol, so it may relate.