File akregator-fix_systray.patch of Package akregator

From ea04b62a2312c6e895257ec1c91292a5b6631feb Mon Sep 17 00:00:00 2001
From: Luigi Baldoni <aloisio@gmx.com>
Date: Fri, 8 Jan 2021 20:12:24 +0100
Subject: [PATCH] Fix Bug 420520 - tray icon always shown

BUG: 420520

(thanks @Jari Kuittinen)
---
 src/akregator_part.cpp |  4 +---
 src/trayicon.cpp       | 12 +++++++++++-
 src/trayicon.h         |  4 ++++
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/akregator_part.cpp b/src/akregator_part.cpp
index ca5cb9c8..7fef01d4 100644
--- a/src/akregator_part.cpp
+++ b/src/akregator_part.cpp
@@ -274,9 +274,7 @@ void Part::initializeTrayIcon()
     TrayIcon::setInstance(trayIcon);
     m_actionManager->setTrayIcon(trayIcon);
 
-    if (isTrayIconEnabled()) {
-        trayIcon->setStatus(KStatusNotifierItem::Active);
-    }
+    trayIcon->setEnabled(isTrayIconEnabled());
 
     connect(m_mainWidget.data(), &MainWidget::signalUnreadCountChanged, trayIcon, &TrayIcon::slotSetUnread);
     connect(m_mainWidget.data(), &MainWidget::signalArticlesSelected,
diff --git a/src/trayicon.cpp b/src/trayicon.cpp
index 89ce5711..966f0f95 100644
--- a/src/trayicon.cpp
+++ b/src/trayicon.cpp
@@ -26,6 +26,16 @@ void TrayIcon::setInstance(TrayIcon *trayIcon)
     m_instance = trayIcon;
 }
 
+bool TrayIcon::isEnabled() const
+{
+    return mEnabled;
+}
+
+void TrayIcon::setEnabled(bool enabled)
+{
+    mEnabled = enabled;
+}
+
 TrayIcon::TrayIcon(QObject *parent)
     : KStatusNotifierItem(parent)
 {
@@ -40,7 +50,7 @@ TrayIcon::~TrayIcon()
 
 void TrayIcon::slotSetUnread(int unread)
 {
-    if (m_unread != unread) {
+    if (mEnabled && m_unread != unread) {
         m_unread = unread;
 
         setToolTip(QStringLiteral("akregator"), i18n("Akregator"), unread == 0 ? i18n("There are no unread articles") : i18np("1 unread article", "%1 unread articles", unread));
diff --git a/src/trayicon.h b/src/trayicon.h
index 0b1f8449..a257c40f 100644
--- a/src/trayicon.h
+++ b/src/trayicon.h
@@ -20,6 +20,9 @@ public:
     static TrayIcon *getInstance();
     static void setInstance(TrayIcon *trayIcon);
 
+    bool isEnabled() const;
+    void setEnabled(bool enabled);
+
     explicit TrayIcon(QObject *parent = nullptr);
     ~TrayIcon();
 
@@ -30,6 +33,7 @@ public Q_SLOTS:
 private:
     static TrayIcon *m_instance;
     int m_unread = 0;
+    bool mEnabled = false;
 };
 } // namespace Akregator
 
-- 
GitLab

openSUSE Build Service is sponsored by