diff --git a/clients/aurorae/src/aurorae.cpp b/clients/aurorae/src/aurorae.cpp index eee2a42a77..a000d51843 100644 --- a/clients/aurorae/src/aurorae.cpp +++ b/clients/aurorae/src/aurorae.cpp @@ -245,8 +245,10 @@ AuroraeClient::AuroraeClient(KDecorationBridge *bridge, KDecorationFactory *fact AuroraeClient::~AuroraeClient() { - m_item->setParent(NULL); - m_item->deleteLater(); + if (m_item) { + m_item->setParent(NULL); + m_item->deleteLater(); + } m_scene->setParent(NULL); m_scene->deleteLater(); m_view->setParent(NULL); @@ -279,7 +281,8 @@ void AuroraeClient::init() QPalette pal2 = widget()->palette(); pal2.setColor(widget()->backgroundRole(), Qt::transparent); widget()->setPalette(pal2); - m_scene->addItem(m_item); + if (m_item) + m_scene->addItem(m_item); slotAlphaChanged(); AuroraeFactory::instance()->theme()->setCompositingActive(compositingActive()); @@ -520,10 +523,12 @@ void AuroraeClient::themeChanged() { m_scene->clear(); m_item = AuroraeFactory::instance()->createQmlDecoration(this); - if (m_item) { - m_item->setWidth(m_scene->sceneRect().width()); - m_item->setHeight(m_scene->sceneRect().height()); + if (!m_item) { + return; } + + m_item->setWidth(m_scene->sceneRect().width()); + m_item->setHeight(m_scene->sceneRect().height()); m_scene->addItem(m_item); connect(m_item, SIGNAL(alphaChanged()), SLOT(slotAlphaChanged())); slotAlphaChanged(); @@ -580,6 +585,10 @@ QVariant AuroraeClient::readConfig(const QString &key, const QVariant &defaultVa void AuroraeClient::slotAlphaChanged() { + if (!m_item) { + setAlphaEnabled(false); + return; + } QVariant alphaProperty = m_item->property("alpha"); if (alphaProperty.isValid() && alphaProperty.canConvert()) { setAlphaEnabled(alphaProperty.toBool());