https://bugs.kde.org/show_bug.cgi?id=377050

David Edmundson <k...@davidedmundson.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |CONFIRMED

--- Comment #11 from David Edmundson <k...@davidedmundson.co.uk> ---
Found it!

Interestingly nothing to do with media controller.

If system tray adds an Applet which is incredibly broken (such as missing
metadta) it will still get created. 
For some reason that I don't know yet Containmnet::createApplet isn't returning
null

ContainmentInterface guards against an invalid graphic object when an applet is
added forward.

However, nothing really bad happens.
So .. we then add a media player, and then later delete it:

We then get into this code in the system tray:

void SystemTray::cleanupTask(const QString &task)
{
    foreach (Plasma::Applet *applet, applets()) {
        if (!applet->pluginMetaData().isValid() || task ==
applet->pluginMetaData().pluginId()) {
            applet->deleteLater();


So when we try and clean up VLC we end up also cleaning our broken applet.
(whatever that is)

This then gets removed.

ContainmentInterface doesn't guard against the graphics object on applet
removal, and we get our cras.


So 3 bits of code, and they're all bad.

Containment::createApplet : should be failing properly

ContainmentInterface::appletAdded / appletRemoved: should be consistent with
guards. I don't think there should be any. It's a bad habbit to just blindly
guard pointers that should be there. It would have made diagnosing this a
million times faster.

SystemTray::cleanupTask : why is it checking applet metadata now???

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to