From d2291f5b17e0c169083a34e51053a99546207ec8 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Tue, 17 Mar 2020 23:13:11 +0400 Subject: [PATCH] Fix panel icon forcing --- .../platform/linux/main_window_linux.cpp | 20 +++++++++++-------- .../platform/linux/main_window_linux.h | 2 +- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp index 347395ab3..3d30ef755 100644 --- a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp @@ -78,7 +78,8 @@ QString GetTrayIconName(int counter, bool muted) { const auto iconName = GetIconName(); const auto panelIconName = GetPanelIconName(counter, muted); - if (QIcon::hasThemeIcon(panelIconName)) { + if (QIcon::hasThemeIcon(panelIconName) + || qEnvironmentVariableIsSet(kForcePanelIcon.utf8())) { return panelIconName; } else if (QIcon::hasThemeIcon(iconName)) { return iconName; @@ -158,7 +159,7 @@ QIcon TrayIconGen(int counter, bool muted) { || iconThemeName != TrayIconThemeName || iconName != TrayIconName) { if (!iconName.isEmpty()) { - if(systemIcon.isNull()) { + if (systemIcon.isNull()) { systemIcon = QIcon::fromTheme(iconName); } @@ -467,11 +468,12 @@ void MainWindow::psTrayMenuUpdated() { } #ifndef TDESKTOP_DISABLE_DBUS_INTEGRATION -void MainWindow::setSNITrayIcon(int counter, bool muted, bool firstShow) { +void MainWindow::setSNITrayIcon(int counter, bool muted) { const auto iconName = GetTrayIconName(counter, muted); if (qEnvironmentVariableIsSet(kDisableTrayCounter.utf8()) - && ((!iconName.isEmpty() && !InSnap()) + && !iconName.isEmpty() + && (!InSnap() || qEnvironmentVariableIsSet(kForcePanelIcon.utf8()))) { if (_sniTrayIcon->iconName() == iconName) { return; @@ -480,7 +482,8 @@ void MainWindow::setSNITrayIcon(int counter, bool muted, bool firstShow) { _sniTrayIcon->setIconByName(iconName); _sniTrayIcon->setToolTipIconByName(iconName); } else if (IsIndicatorApplication()) { - if(!IsIconRegenerationNeeded(counter, muted) && !firstShow) { + if (!IsIconRegenerationNeeded(counter, muted) + && !_sniTrayIcon->iconName().isEmpty()) { return; } @@ -492,7 +495,8 @@ void MainWindow::setSNITrayIcon(int counter, bool muted, bool firstShow) { _sniTrayIcon->setIconByName(_trayIconFile->fileName()); } } else { - if(!IsIconRegenerationNeeded(counter, muted) && !firstShow) { + if (!IsIconRegenerationNeeded(counter, muted) + && !_sniTrayIcon->iconPixmap().isEmpty()) { return; } @@ -554,7 +558,7 @@ void MainWindow::onSNIOwnerChanged( cSetSupportTray(trayAvailable); - if(cSupportTray()) { + if (cSupportTray()) { psSetupTrayIcon(); } else { LOG(("System tray is not available.")); @@ -575,7 +579,7 @@ void MainWindow::psSetupTrayIcon() { this); _sniTrayIcon->setTitle(AppName.utf16()); - setSNITrayIcon(counter, muted, true); + setSNITrayIcon(counter, muted); attachToSNITrayIcon(); } diff --git a/Telegram/SourceFiles/platform/linux/main_window_linux.h b/Telegram/SourceFiles/platform/linux/main_window_linux.h index 8602c5380..43ab72284 100644 --- a/Telegram/SourceFiles/platform/linux/main_window_linux.h +++ b/Telegram/SourceFiles/platform/linux/main_window_linux.h @@ -123,7 +123,7 @@ private: QAction *psMonospace = nullptr; QAction *psClearFormat = nullptr; - void setSNITrayIcon(int counter, bool muted, bool firstShow = false); + void setSNITrayIcon(int counter, bool muted); void attachToSNITrayIcon(); #endif // !TDESKTOP_DISABLE_DBUS_INTEGRATION