From ace363f4323a1a4f2ece742cc36eacc4ae5e16f2 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sat, 26 Nov 2022 05:55:49 +0400 Subject: [PATCH] Use GBytesIcon with GNotification GFileIcon is not supported by xdg-desktop-portal --- .../linux/notifications_manager_linux.cpp | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp index 9265eb53b..84cd55b2c 100644 --- a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp @@ -691,7 +691,25 @@ void NotificationData::setImage(const QString &imagePath) { } if (_notification) { - _notification->set_icon(Gio::Icon::create(imagePath.toStdString())); + const auto imageData = [&] { + QFile f(imagePath); + if (f.open(QIODevice::ReadOnly)) { + return f.readAll(); + } + return QByteArray(); + }(); + + if (imageData.isEmpty()) { + return; + } + + const auto imageBytes = Glib::Bytes::create( + imageData.constData(), + imageData.size()); + + _notification->set_icon( + Glib::wrap(g_bytes_icon_new(imageBytes->gobj()))); + return; }