summaryrefslogtreecommitdiff
path: root/core/launcher/systray.cpp
authorzecke <zecke>2003-09-03 18:58:20 (UTC)
committer zecke <zecke>2003-09-03 18:58:20 (UTC)
commit3038503f6ffc2d58b00650d5feae23cc8e842bcb (patch) (side-by-side diff)
tree33b2b319307b9a5abda47b51c31329131295d703 /core/launcher/systray.cpp
parent577cdc4f2ce81eaceb132af08d8ab6fe12b4eadc (diff)
downloadopie-3038503f6ffc2d58b00650d5feae23cc8e842bcb.zip
opie-3038503f6ffc2d58b00650d5feae23cc8e842bcb.tar.gz
opie-3038503f6ffc2d58b00650d5feae23cc8e842bcb.tar.bz2
Failure free restart of the launcher and a comment
why we do that
Diffstat (limited to 'core/launcher/systray.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/systray.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/core/launcher/systray.cpp b/core/launcher/systray.cpp
index 64356ca..6122770 100644
--- a/core/launcher/systray.cpp
+++ b/core/launcher/systray.cpp
@@ -69,6 +69,14 @@ void SysTray::clearApplets()
{
#ifndef QT_NO_COMPONENTS
+ /*
+ * Note on clearing. SOme applets delete their
+ * applets themselves some don't do it
+ * and on restart this can crash. If we delete it
+ * here we might end up in a double deletion. We could
+ * use QGuardedPtr but that would be one QOBject
+ * for every applet more but only useful for restart
+ */
QValueList<TaskbarApplet>::Iterator mit;
for ( mit = appletList.begin(); mit != appletList.end(); ++mit ) {
(*mit).iface->release();