Bug 311555

Summary: System tray icon for skype is just blank white sheet
Product: [Unmaintained] plasma4 Reporter: Nick Leverton <nick>
Component: widget-systemtrayAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: Admc, alexalexiv, chgonzalezg, francesco.cecconi
Priority: NOR    
Version: 4.9.90 Beta2   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Nick Leverton 2012-12-12 10:00:26 UTC
Since upgrading to 4.9.90, Skype's system tray icon does not show up.  In its place there is a blank white sheet icon with folded corner. Up to 4.9.4 Skype's icon was correctly shown (it normally reflects the online status plus an indicator for outstanding messages).

I am on skype 4.1.0.20.  I appreciate skype is closed source but we require it for work, so is it possible to debug what is happening here please ?

Reproducible: Always




This is what is logged to .xsession-errors on loading skype:

Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated.
Object::connect: No such slot IconItem::implicitWidthChanged()
Object::connect:  (sender name:   'plasma-desktop')
Object::connect: No such slot IconItem::implicitHeightChanged()
Object::connect:  (sender name:   'plasma-desktop')
Object::connect: No such slot IconItem::implicitWidthChanged()
Object::connect:  (sender name:   'plasma-desktop')
Object::connect: No such slot IconItem::implicitHeightChanged()
Object::connect:  (sender name:   'plasma-desktop')
Object::connect: No such signal IconItem_QML_15::minimumWidthChanged()                                                                                                                                         
Object::connect:  (sender name:   'Original Item')                                                                                                                                                             
Object::connect:  (receiver name: 'DIContainer')                                                                                                                                                               
Object::connect: No such signal IconItem_QML_15::minimumHeightChanged()                                                                                                                                        
Object::connect:  (sender name:   'Original Item')                                                                                                                                                             
Object::connect:  (receiver name: 'DIContainer')                                                                                                                                                               
Object::connect: No such signal IconItem_QML_15::maximumWidthChanged()                                                                                                                                         
Object::connect:  (sender name:   'Original Item')                                                                                                                                                             
Object::connect:  (receiver name: 'DIContainer')                                                                                                                                                               
Object::connect: No such signal IconItem_QML_15::maximumHeightChanged()                                                                                                                                        
Object::connect:  (sender name:   'Original Item')                                                                                                                                                             
Object::connect:  (receiver name: 'DIContainer')                                                                                                                                                               
Object::connect: No such signal IconItem_QML_15::preferredWidthChanged()                                                                                                                                       
Object::connect:  (sender name:   'Original Item')                                                                                                                                                             
Object::connect:  (receiver name: 'DIContainer')                                                                                                                                                               
Object::connect: No such signal IconItem_QML_15::preferredHeightChanged()                                                                                                                                      
Object::connect:  (sender name:   'Original Item')                                                                                                                                                             
Object::connect:  (receiver name: 'DIContainer')                                                                                                                                                               
Object::connect: No such signal IconItem_QML_15::minimumWidthChanged()                                                                                                                                         
Object::connect:  (sender name:   'Original Item')                                                                                                                                                             
Object::connect:  (receiver name: 'DIContainer')                                                                                                                                                               
Object::connect: No such signal IconItem_QML_15::minimumHeightChanged()                                                                                                                                        
Object::connect:  (sender name:   'Original Item')                                                                                                                                                             
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_15::maximumWidthChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_15::maximumHeightChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_15::preferredWidthChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_15::preferredHeightChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::minimumWidthChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::minimumHeightChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::maximumWidthChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::maximumHeightChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::preferredWidthChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::preferredHeightChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::minimumWidthChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::minimumHeightChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::maximumWidthChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::maximumHeightChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::preferredWidthChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
Object::connect: No such signal IconItem_QML_70::preferredHeightChanged()
Object::connect:  (sender name:   'Original Item')
Object::connect:  (receiver name: 'DIContainer')
QDBusConnection for control created "/Mixers/PulseAudio__Capture_Streams_1/stream_2" 
QDBusConnection for control created "/Mixers/PulseAudio__Capture_Streams_1/stream_2"
Comment 1 Francesco Cecconi 2012-12-13 10:39:06 UTC
I can't reproduce this issue with version 4.9.90 git 13/12/2012.
Comment 2 Alexei Ivanov 2012-12-13 18:32:48 UTC
I have the same problem after upgrading to 4.9.90 Beta 2.
Skype v.4.1.0.20.
Comment 3 Christian González 2012-12-15 13:50:35 UTC
Same thing happens with others pure-Qt apps, like KeePassX and HackTray. Oddly enough, others pure-Qt apps like qBittorrent shows its icons correctly.

I'm using 4.9.90 from kubuntu-ppa-beta-quantal.
Comment 4 Francesco Cecconi 2012-12-15 17:56:14 UTC
Well, this is a kubuntu-related issue and Harald Sitter is working on it.

References: 
@https://git.reviewboard.kde.org/r/107702/
@https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1088772
Comment 5 Jekyll Wu 2012-12-16 03:28:25 UTC
*** Bug 311747 has been marked as a duplicate of this bug. ***
Comment 6 Admc 2012-12-16 10:50:44 UTC
All apps in ubuntu must support libindicator (aka ayatana) system tray icons, because unity doesn't show legacy system tray icons. Fortunately KDE support both ayatana and legacy system tray icons. In KDE 4.10 systemtray plasmoid was rewritten which caused a regression. There's a problem which appears when sni-qt package is installed. Some qt apps are using sni-qt to provide ayatana consistent system tray entries. Those apps' system tray icons are just displaying generic "missing icon" instead of normal system tray icons (see screenshot). Temporary workaround is to uninstall sni-qt package.
Comment 7 Harald Sitter 2012-12-17 13:14:51 UTC
Git commit a54f9ec9dbbe7001f5a38c15c7c7371ab0932b1b by Harald Sitter.
Committed on 17/12/2012 at 14:13.
Pushed by sitter into branch 'KDE/4.10'.

KSNI: fix IconThemePath support

IconThemePath is used by a Canonical Patch to enable all Qt apps using
QSystemTrayIcon to transparently provide a SNI with icons exported into
a temporary path. Hence the lack of support breaks icons for all Qt apps
on Ubuntu.

Fix:
- in the dataengine export IconThemePath
- in the systray protocol pick up the value and forward to QML
- in QML set the themePath accordingly on the IconItem
  (requires changes in runtime)

https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1088772
CCMAIL: 1088772@bugs.launchpad.net
REVIEW: 107702

M  +2    -2    plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml
M  +83   -0    plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp
M  +7    -1    plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.h
M  +1    -0    plasma/generic/dataengines/statusnotifieritem/statusnotifieritemsource.cpp

http://commits.kde.org/kde-workspace/a54f9ec9dbbe7001f5a38c15c7c7371ab0932b1b
Comment 8 Harald Sitter 2012-12-17 13:15:04 UTC
Git commit 78cfd7a02fe4e260c5b09e8e055325e4803131bf by Harald Sitter.
Committed on 17/12/2012 at 14:13.
Pushed by sitter into branch 'master'.

KSNI: fix IconThemePath support

IconThemePath is used by a Canonical Patch to enable all Qt apps using
QSystemTrayIcon to transparently provide a SNI with icons exported into
a temporary path. Hence the lack of support breaks icons for all Qt apps
on Ubuntu.

Fix:
- in the dataengine export IconThemePath
- in the systray protocol pick up the value and forward to QML
- in QML set the themePath accordingly on the IconItem
  (requires changes in runtime)

https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1088772
CCMAIL: 1088772@bugs.launchpad.net
REVIEW: 107702

M  +2    -2    plasma/generic/applets/systemtray/package/contents/ui/StatusNotifierItem.qml
M  +83   -0    plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.cpp
M  +7    -1    plasma/generic/applets/systemtray/protocols/dbussystemtray/dbussystemtraytask.h
M  +1    -0    plasma/generic/dataengines/statusnotifieritem/statusnotifieritemsource.cpp

http://commits.kde.org/kde-workspace/78cfd7a02fe4e260c5b09e8e055325e4803131bf