summaryrefslogtreecommitdiff
path: root/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-systemtray-prefer-IconName-over-IconPixmap.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-systemtray-prefer-IconName-over-IconPixmap.patch')
-rw-r--r--kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-systemtray-prefer-IconName-over-IconPixmap.patch137
1 files changed, 0 insertions, 137 deletions
diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-systemtray-prefer-IconName-over-IconPixmap.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-systemtray-prefer-IconName-over-IconPixmap.patch
deleted file mode 100644
index 0ac8ed788ade..000000000000
--- a/kde-plasma/plasma-workspace/files/plasma-workspace-5.24.5-applets-systemtray-prefer-IconName-over-IconPixmap.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From ea2833e4dd7114f8bf22a322a26c6c05ebf767f2 Mon Sep 17 00:00:00 2001
-From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
-Date: Mon, 25 Apr 2022 21:58:58 +0300
-Subject: [PATCH 3/8] applets/systemtray: Prefer IconName over IconPixmap
-
-In case both IconName and IconPixmap are provided, the system tray
-applet is going to prefer the pixmap.
-
-That can create a dark icon on dark background bug because plasma can't
-recolor pixmaps.
-
-The SNI spec recommends visualizations to prefer icons over pixmaps:
-
-> An icon can either be identified by its Freedesktop-compliant icon
-> name, carried by this property of by the icon data itself, carried by
-> the property IconPixmap. Visualizations are encouraged to prefer icon
-> names over icon pixmaps if both are available (FIXME: still not very
-> defined: could e the pixmap used as fallback if an icon name is not found?)
-
-BUG: 418996
-
-- Unset iconName when icon can't be loaded
-- no code duplication
-(cherry picked from commit 7363d0e0f3c1a447e6264e92762735bd33da2682)
----
- .../systemtray/statusnotifieritemsource.cpp | 82 ++++++++-----------
- 1 file changed, 33 insertions(+), 49 deletions(-)
-
-diff --git a/applets/systemtray/statusnotifieritemsource.cpp b/applets/systemtray/statusnotifieritemsource.cpp
-index f67845e42..731aecadc 100644
---- a/applets/systemtray/statusnotifieritemsource.cpp
-+++ b/applets/systemtray/statusnotifieritemsource.cpp
-@@ -286,68 +286,52 @@ void StatusNotifierItemSource::refreshCallback(QDBusPendingCallWatcher *call)
- QIcon overlay;
- QStringList overlayNames;
-
-- // Icon
-+ // Overlay icon
- {
-- KDbusImageVector image;
-- QIcon icon;
-- QString iconName;
--
-- properties[QStringLiteral("OverlayIconPixmap")].value<QDBusArgument>() >> image;
-- if (image.isEmpty()) {
-- QString iconName = properties[QStringLiteral("OverlayIconName")].toString();
-- m_overlayIconName = iconName;
-- if (!iconName.isEmpty()) {
-+ m_overlayIconName = QString();
-+
-+ const QString iconName = properties[QStringLiteral("OverlayIconName")].toString();
-+ if (!iconName.isEmpty()) {
-+ overlay = QIcon(new KIconEngine(iconName, iconLoader()));
-+ if (!overlay.isNull()) {
-+ m_overlayIconName = iconName;
- overlayNames << iconName;
-- overlay = QIcon(new KIconEngine(iconName, iconLoader()));
- }
-- } else {
-- overlay = imageVectorToPixmap(image);
- }
-+ if (overlay.isNull()) {
-+ KDbusImageVector image;
-+ properties[QStringLiteral("OverlayIconPixmap")].value<QDBusArgument>() >> image;
-+ if (!image.isEmpty()) {
-+ overlay = imageVectorToPixmap(image);
-+ }
-+ }
-+ }
-
-- properties[QStringLiteral("IconPixmap")].value<QDBusArgument>() >> image;
-- if (image.isEmpty()) {
-- iconName = properties[QStringLiteral("IconName")].toString();
-- if (!iconName.isEmpty()) {
-- icon = QIcon(new KIconEngine(iconName, iconLoader(), overlayNames));
--
-- if (overlayNames.isEmpty() && !overlay.isNull()) {
-+ auto loadIcon = [this, &properties, &overlay, &overlayNames](const QString &iconKey, const QString &pixmapKey) -> std::tuple<QIcon, QString> {
-+ const QString iconName = properties[iconKey].toString();
-+ if (!iconName.isEmpty()) {
-+ QIcon icon = QIcon(new KIconEngine(iconName, iconLoader(), overlayNames));
-+ if (!icon.isNull()) {
-+ if (!overlay.isNull() && overlayNames.isEmpty()) {
- overlayIcon(&icon, &overlay);
- }
-+ return {icon, iconName};
- }
-- } else {
-- icon = imageVectorToPixmap(image);
-+ }
-+ KDbusImageVector image;
-+ properties[pixmapKey].value<QDBusArgument>() >> image;
-+ if (!image.isEmpty()) {
-+ QIcon icon = imageVectorToPixmap(image);
- if (!icon.isNull() && !overlay.isNull()) {
- overlayIcon(&icon, &overlay);
- }
-+ return {icon, QString()};
- }
-- m_icon = icon;
-- m_iconName = iconName;
-- }
-+ return {};
-+ };
-
-- // Attention icon
-- {
-- KDbusImageVector image;
-- QIcon attentionIcon;
--
-- properties[QStringLiteral("AttentionIconPixmap")].value<QDBusArgument>() >> image;
-- if (image.isEmpty()) {
-- QString iconName = properties[QStringLiteral("AttentionIconName")].toString();
-- m_attentionIconName = iconName;
-- if (!iconName.isEmpty()) {
-- attentionIcon = QIcon(new KIconEngine(iconName, iconLoader(), overlayNames));
--
-- if (overlayNames.isEmpty() && !overlay.isNull()) {
-- overlayIcon(&attentionIcon, &overlay);
-- }
-- }
-- } else {
-- attentionIcon = imageVectorToPixmap(image);
-- if (!attentionIcon.isNull() && !overlay.isNull()) {
-- overlayIcon(&attentionIcon, &overlay);
-- }
-- }
-- m_attentionIcon = attentionIcon;
-- }
-+ std::tie(m_icon, m_iconName) = loadIcon(QStringLiteral("IconName"), QStringLiteral("IconPixmap"));
-+ std::tie(m_attentionIcon, m_attentionIconName) = loadIcon(QStringLiteral("AttentionIconName"), QStringLiteral("AttentionIconPixmap"));
-
- // ToolTip
- {
---
-2.35.1
-