diff --git a/src/kstatusnotifieritem.cpp b/src/kstatusnotifieritem.cpp --- a/src/kstatusnotifieritem.cpp +++ b/src/kstatusnotifieritem.cpp @@ -616,12 +616,12 @@ emit d->statusNotifierItemDBus->NewStatus(QString::fromLatin1(metaObject()->enumerator(metaObject()->indexOfEnumerator("ItemStatus")).valueToKey(d->status))); } - if (d->associatedWidget == d->menu) { + if (d->associatedWidget && d->associatedWidget == d->menu) { d->statusNotifierItemDBus->ContextMenu(pos.x(), pos.y()); return; } - if (d->menu->isVisible()) { + if (d->menu && d->menu->isVisible()) { d->menu->hide(); } diff --git a/src/kstatusnotifieritemdbus_p.cpp b/src/kstatusnotifieritemdbus_p.cpp --- a/src/kstatusnotifieritemdbus_p.cpp +++ b/src/kstatusnotifieritemdbus_p.cpp @@ -290,11 +290,7 @@ void KStatusNotifierItemDBus::Activate(int x, int y) { - if (m_statusNotifierItem->d->associatedWidget == m_statusNotifierItem->d->menu) { - ContextMenu(x, y); - } else { - m_statusNotifierItem->activate(QPoint(x, y)); - } + m_statusNotifierItem->activate(QPoint(x, y)); } void KStatusNotifierItemDBus::SecondaryActivate(int x, int y)