diff --git a/popupapplet.cpp b/popupapplet.cpp index 016642a43..7f1bf9d54 100644 --- a/popupapplet.cpp +++ b/popupapplet.cpp @@ -435,7 +435,6 @@ bool PopupApplet::eventFilter(QObject *watched, QEvent *event) { if (!d->passive && watched == d->dialogPtr.data() && (event->type() == QEvent::WindowDeactivate)) { d->popupLostFocus = true; - hidePopup(); QTimer::singleShot(100, this, SLOT(clearPopupLostFocus())); } @@ -660,6 +659,9 @@ void PopupAppletPrivate::hideTimedPopup() void PopupAppletPrivate::clearPopupLostFocus() { + if (!icon || !icon->isDown()) { + q->hidePopup(); + } popupLostFocus = false; } diff --git a/widgets/iconwidget.h b/widgets/iconwidget.h index 5632b863c..e0b2a2d95 100644 --- a/widgets/iconwidget.h +++ b/widgets/iconwidget.h @@ -353,6 +353,7 @@ private: IconWidgetPrivate * const d; friend class IconWidgetPrivate; + friend class PopupAppletPrivate; }; } // namespace Plasma