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); + } } } }