summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/tqtraylabel.cpp4
-rw-r--r--src/traylabelmgr.cpp6
2 files changed, 9 insertions, 1 deletions
diff --git a/src/tqtraylabel.cpp b/src/tqtraylabel.cpp
index 4e0b717..925ffd2 100644
--- a/src/tqtraylabel.cpp
+++ b/src/tqtraylabel.cpp
@@ -1070,6 +1070,10 @@ bool TQTrayLabel::restoreState(TDEConfig *config)
dock();
scanClients(); // Grab window
+ if (mDockedWindow == None)
+ {
+ return false;
+ }
if (mWithdrawn)
{
withdraw();
diff --git a/src/traylabelmgr.cpp b/src/traylabelmgr.cpp
index 54b98bd..b011288 100644
--- a/src/traylabelmgr.cpp
+++ b/src/traylabelmgr.cpp
@@ -543,7 +543,11 @@ void TrayLabelMgr::doRestoreSession()
{
TRACE("Restoring Application[%s]", pname.ascii());
manageTrayLabel(new TQTrayLabel(TQStringList::split(" ", pname), 0));
- mTrayLabels.getFirst()->restoreState(config);
+ if (!mTrayLabels.getFirst()->restoreState(config))
+ {
+ // Failed to restore the application, remove the tray label
+ delete mTrayLabels.take(0);
+ }
}
}
}