From 8dee2a1c8b0838ec2a9f6e8776e4cb386f476b53 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Tue, 4 Apr 2023 09:14:39 +0400 Subject: [PATCH] Set device pixel ratio for counter layer --- Telegram/SourceFiles/platform/linux/tray_linux.cpp | 1 + Telegram/SourceFiles/window/main_window.cpp | 5 ++++- Telegram/SourceFiles/window/main_window.h | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/platform/linux/tray_linux.cpp b/Telegram/SourceFiles/platform/linux/tray_linux.cpp index 67002f4ec..2a96e1f1b 100644 --- a/Telegram/SourceFiles/platform/linux/tray_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/tray_linux.cpp @@ -232,6 +232,7 @@ QIcon IconGraphic::trayIcon( : 16; const auto layer = Window::GenerateCounterLayer({ .size = layerSize, + .devicePixelRatio = iconImage.devicePixelRatio(), .count = counter, .bg = bg, .fg = fg, diff --git a/Telegram/SourceFiles/window/main_window.cpp b/Telegram/SourceFiles/window/main_window.cpp index b7169874b..3956522b1 100644 --- a/Telegram/SourceFiles/window/main_window.cpp +++ b/Telegram/SourceFiles/window/main_window.cpp @@ -249,7 +249,10 @@ QImage GenerateCounterLayer(CounterLayerArgs &&args) { } }(); - auto result = QImage(d.size, d.size, QImage::Format_ARGB32); + auto result = QImage( + QSize(d.size, d.size) * d.devicePixelRatio, + QImage::Format_ARGB32); + result.setDevicePixelRatio(d.devicePixelRatio); result.fill(Qt::transparent); auto p = QPainter(&result); diff --git a/Telegram/SourceFiles/window/main_window.h b/Telegram/SourceFiles/window/main_window.h index 4c7fe7b04..891c0c314 100644 --- a/Telegram/SourceFiles/window/main_window.h +++ b/Telegram/SourceFiles/window/main_window.h @@ -51,6 +51,7 @@ struct CounterLayerArgs { required count = 1; required bg; required fg; + double devicePixelRatio = 1.; }; [[nodiscard]] QImage GenerateCounterLayer(CounterLayerArgs &&args);