From 07f72c20ebe4de773b0581ddcf7f08e5fda294b1 Mon Sep 17 00:00:00 2001 From: John Preston Date: Sat, 22 Jan 2022 16:11:12 +0300 Subject: [PATCH] Change application icon only in support mode. Fixes #23895. --- Telegram/SourceFiles/core/application.cpp | 4 +++- Telegram/SourceFiles/window/main_window.cpp | 12 ++++++++---- Telegram/SourceFiles/window/main_window.h | 4 +++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp index c750132d3..1e802dcd8 100644 --- a/Telegram/SourceFiles/core/application.cpp +++ b/Telegram/SourceFiles/core/application.cpp @@ -1180,7 +1180,9 @@ void Application::startShortcuts() { ) | rpl::start_with_next([=](Main::Session *session) { const auto support = session && session->supportMode(); Shortcuts::ToggleSupportShortcuts(support); - Platform::SetApplicationIcon(Window::CreateIcon(session)); + Platform::SetApplicationIcon(Window::CreateIcon( + session, + Platform::IsMac())); }, _lifetime); Shortcuts::Requests( diff --git a/Telegram/SourceFiles/window/main_window.cpp b/Telegram/SourceFiles/window/main_window.cpp index 436cb6eac..16c274e5d 100644 --- a/Telegram/SourceFiles/window/main_window.cpp +++ b/Telegram/SourceFiles/window/main_window.cpp @@ -106,16 +106,20 @@ void ConvertIconToBlack(QImage &image) { } } -QIcon CreateOfficialIcon(Main::Session *session) { +QIcon CreateOfficialIcon(Main::Session *session, bool returnNullIfDefault) { + const auto support = (session && session->supportMode()); + if (!support && returnNullIfDefault) { + return QIcon(); + } auto image = Logo(); - if (session && session->supportMode()) { + if (support) { ConvertIconToBlack(image); } return QIcon(Ui::PixmapFromImage(std::move(image))); } -QIcon CreateIcon(Main::Session *session) { - auto result = CreateOfficialIcon(session); +QIcon CreateIcon(Main::Session *session, bool returnNullIfDefault) { + auto result = CreateOfficialIcon(session, returnNullIfDefault); #if defined Q_OS_UNIX && !defined Q_OS_MAC const auto iconFromTheme = QIcon::fromTheme( Platform::GetIconName(), diff --git a/Telegram/SourceFiles/window/main_window.h b/Telegram/SourceFiles/window/main_window.h index 50b73d4ee..a319a15f9 100644 --- a/Telegram/SourceFiles/window/main_window.h +++ b/Telegram/SourceFiles/window/main_window.h @@ -38,7 +38,9 @@ struct TermsLock; [[nodiscard]] const QImage &Logo(); [[nodiscard]] const QImage &LogoNoMargin(); -[[nodiscard]] QIcon CreateIcon(Main::Session *session = nullptr); +[[nodiscard]] QIcon CreateIcon( + Main::Session *session = nullptr, + bool returnNullIfDefault = false); void ConvertIconToBlack(QImage &image); struct CounterLayerArgs {