File fix_icon.patch of Package plasma6-nm

From a6fad95ea41444fcdc227e7703c00ef77b97dfa6 Mon Sep 17 00:00:00 2001
From: Nate Graham <nate@kde.org>
Date: Mon, 2 Mar 2026 09:05:32 -0700
Subject: [PATCH] Consider connected bridges and VLANs to be connections for
 icon purposes

Currently, bridges and VLANs are not considered real connections for
icon lookup purposes, so the code returns a disconnected icon.

Before 5ce273ac73725c1f2316c3ee9b950c34d87ac0df, the icon it returned
was `network-wired-available`, which doesn't *look* disconnected in the
Breeze icon theme, so nobody noticed or cared.

5ce273ac73725c1f2316c3ee9b950c34d87ac0df changed that to return
`network-wired-disconnected`, which people do notice and care about.

The underlying problem is bridge and VLAN connections not being considered
active connections for icon purposes; fixing that results in an icon
that is both semantically and visually correct when the only active
connections are bridges or VLANs.

BUG: 516712
FIXED-IN: 6.6.2


(cherry picked from commit cbba7600648cd8fbd14942f4ee238093a9c0c5eb)

Co-authored-by: Nate Graham <nate@kde.org>
---
 libs/connectionicon.cpp | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/libs/connectionicon.cpp b/libs/connectionicon.cpp
index 9e63801f6..c7888aa33 100644
--- a/libs/connectionicon.cpp
+++ b/libs/connectionicon.cpp
@@ -325,6 +325,10 @@ void ConnectionIcon::setIcons()
                         && (connection->type() != NetworkManager::ConnectionSettings::Wired))) {
                     connection = activeConnection;
                 }
+            } else if (type == NetworkManager::ConnectionSettings::Vlan) {
+                if (connection && connection->type() == NetworkManager::ConnectionSettings::Vlan) {
+                    connection = activeConnection;
+                }
             }
         }
     }
@@ -347,6 +351,10 @@ void ConnectionIcon::setIcons()
             } else if (type == NetworkManager::Device::Ethernet) {
                 setConnectionIcon(QStringLiteral("network-wired-activated"));
                 setConnectionTooltipIcon(QStringLiteral("network-wired-activated"));
+            } else if (type == NetworkManager::Device::Bridge) {
+                // TODO: use a not-yet created bridge-specific network icon here
+                setConnectionIcon(QStringLiteral("network-wired-activated"));
+                setConnectionTooltipIcon(QStringLiteral("network-wired-activated"));
             } else if (type == NetworkManager::Device::Modem) {
                 setModemIcon(device);
             } else if (type == NetworkManager::Device::Bluetooth) {
@@ -365,7 +373,7 @@ void ConnectionIcon::setIcons()
                 // do anything just because it has a device
                 // associated with it.
             } else {
-                // Ignore other devices (bond/bridge/team etc.)
+                // Ignore other devices (bond/team etc.)
                 setDisconnectedIcon();
             }
         }
-- 
GitLab

openSUSE Build Service is sponsored by