Comment 6 for bug 1635625

Revision history for this message
Carlo Cannas (carlo94) wrote :

The culprit is revision 4187 (http://bazaar.launchpad.net/~unity-team/unity/trunk/revision/4187): in lockscreen::Controller a new menu::Manager instance is created to handle the lockscreen indicators, then as soon the new LockScreenDBusIndicators instance connects to the new com.canonical.Unity.Panel.Service.LockScreen bus it calls DBusIndicators::Impl::OnIconsPathChanged, which asks the lockscreen panel service for icon paths, but the *lockscreen* panel service is just started and doesn't know any of the new paths needed for the indicators which provide custom icons, so it just reports the default icon theme search paths. An icon_paths_changed signal is emitted which invokes menu::Manager::Impl::IconPathsChanged that sets the search paths for the default GTK icon theme (which is a global shared resource of the process).
After unlocking the screen no signal is sent to recover the proper search paths, so some indicators shows the missing icon.
Maybe a better way to handle this whole indicators icon thing would be to have a different GTK icon theme object for each menu::Manager instance instead of modifying the global default icon theme?