Bug 366283

Summary: Non KDE plasma system tray icons are missing
Product: [Plasma] plasmashell Reporter: Reshad Patuck <reshad>
Component: System TrayAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: daveandclaire75, kde, notmart, plasma-bugs, zsitvaij
Priority: NOR    
Version: 5.7.2   
Target Milestone: 1.0   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:

Description Reshad Patuck 2016-07-30 19:17:10 UTC
When I log in to my desktop session I sometimes (1 in 3) I do not get system tray icons for non KDE plasma applications (akregator, kmail, slack, keepassx) which are running.

I can kill and restart the applications but they do not get added to the tray.

If I restart plasmashell (kill and run from terminal) I get all the icons in the shell.

Reproducible: Sometimes

Steps to Reproduce:
1. Log out of session (if working)
2. Log back into session (may not work)
Comment 1 Marco Martin 2016-08-16 12:02:38 UTC
xembed to sni proxy problem?
Comment 2 David Edmundson 2016-08-27 22:54:45 UTC
No. akregator and kmail use KStatusNotifierItem even if they're KDE4 versions.
Comment 3 David Edmundson 2016-08-27 23:51:59 UTC
Are you able to test a patch?
If so can you try: https://phabricator.kde.org/D2613

I'm not sure if it'll fix your case; as obviously we don't have a lot of debug info to go on.
Comment 4 Janos Zsitvai 2016-09-01 17:47:50 UTC
I haven't experienced the problem since applying the patch on the 28th. This is with version 5.7.4.
Comment 5 David Edmundson 2016-09-09 11:48:41 UTC
Git commit df4387a21f6eb5ede255ea148143122ae4d5ae9c by David Edmundson.
Committed on 09/09/2016 at 11:46.
Pushed by davidedmundson into branch 'Plasma/5.7'.

Fix some status notifier items not appearing

Summary:
Set the initial values for all the things
This is important as Plasma::DataModel has an unsolvable bug
When it gets data with a new key it tries to update the  QAIM roleNames
>From QML this achieves absolutely nothing as there is no signal to tell
QQmlDelegateModel to reload the roleNames in QQmlAdapatorModel
No matter if the row changes or the model refreshes
This means it does not re-evaluate what bindings exist (watchedRoleIds)
and we get properties that don't bind for this or any future SNI.

The main source of this problem is syncStatus can occur before
refreshCallback; but whilst that's easy to guard against, there's still
multiple if{} blocks that don't set various keys in refreshCallback()
which would all need changing too. This seemed cleaner and easier to
manage.
Related: bug 367756

Reviewers: #plasma, mart

Reviewed By: mart

Subscribers: broulik, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D2613

M  +29   -0    dataengines/statusnotifieritem/statusnotifieritemsource.cpp

http://commits.kde.org/plasma-workspace/df4387a21f6eb5ede255ea148143122ae4d5ae9c
Comment 6 David Edmundson 2016-09-09 14:29:30 UTC
*** Bug 368239 has been marked as a duplicate of this bug. ***