From f9bf68461d3d36c5b351b0f98b6aa0665c2455d1 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sun, 16 Oct 2022 16:52:15 +0400 Subject: [PATCH] Provide the same sizes for tray icon as for main window icon --- .../SourceFiles/platform/linux/tray_linux.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Telegram/SourceFiles/platform/linux/tray_linux.cpp b/Telegram/SourceFiles/platform/linux/tray_linux.cpp index ba2a6b7da1..668a1c9988 100644 --- a/Telegram/SourceFiles/platform/linux/tray_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/tray_linux.cpp @@ -58,7 +58,7 @@ private: const QString _mutePanelTrayIconName; const QString _attentionPanelTrayIconName; - const int _iconSizes[5]; + const int _iconSizes[7]; bool _muted = true; int32 _count = 0; @@ -73,7 +73,7 @@ IconGraphic::IconGraphic() : _panelTrayIconName("telegram-panel") , _mutePanelTrayIconName("telegram-mute-panel") , _attentionPanelTrayIconName("telegram-attention-panel") -, _iconSizes{ 16, 22, 24, 32, 48 } { +, _iconSizes{ 16, 22, 32, 48, 64, 128, 256 } { } IconGraphic::~IconGraphic() = default; @@ -211,13 +211,14 @@ QIcon IconGraphic::trayIcon(int counter, bool muted) { : st::trayCounterBg; const auto &fg = st::trayCounterFg; if (iconSize >= 22) { - const auto layerSize = (iconSize >= 48) - ? 32 - : (iconSize >= 36) - ? 24 - : (iconSize >= 32) - ? 20 - : 16; + const auto layerSize0 = iconSize * 0.66; + const auto layerSize1 = int(base::SafeRound(layerSize0)); + auto layerSize2 = 0.; + const auto layerSize = layerSize1 % 2 + ? std::modf(layerSize0, &layerSize2) >= 0.5 + ? layerSize1 + 1 + : layerSize1 - 1 + : layerSize1; const auto layer = Window::GenerateCounterLayer({ .size = layerSize, .count = counter,