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.