From 98b865b7f6718fbbee5c01dfdffa14ef5b6aa7bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Papp?= Date: Wed, 24 Jun 2026 16:05:07 +0200 Subject: [PATCH] [client/ui] Fix stuck Windows tray dark icon on state change Only the connected state passed a dark variant to SetDarkModeIcon, so on dark Windows themes the connected-dark icon stuck for connecting, error and update-* states. Pass a dark variant for every state. --- client/ui/icons.go | 12 ++++++++++++ client/ui/tray_icon.go | 12 ++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/client/ui/icons.go b/client/ui/icons.go index 62569fc77..5ab19ca05 100644 --- a/client/ui/icons.go +++ b/client/ui/icons.go @@ -18,18 +18,30 @@ var iconDisconnected []byte //go:embed assets/netbird-systemtray-connecting.png var iconConnecting []byte +//go:embed assets/netbird-systemtray-connecting-dark.png +var iconConnectingDark []byte + //go:embed assets/netbird-systemtray-error.png var iconError []byte +//go:embed assets/netbird-systemtray-error-dark.png +var iconErrorDark []byte + //go:embed assets/netbird-systemtray-needs-login.png var iconNeedsLogin []byte //go:embed assets/netbird-systemtray-update-connected.png var iconUpdateConnected []byte +//go:embed assets/netbird-systemtray-update-connected-dark.png +var iconUpdateConnectedDark []byte + //go:embed assets/netbird-systemtray-update-disconnected.png var iconUpdateDisconnected []byte +//go:embed assets/netbird-systemtray-update-disconnected-dark.png +var iconUpdateDisconnectedDark []byte + //go:embed assets/netbird-systemtray-connected-macos.png var iconConnectedMacOS []byte diff --git a/client/ui/tray_icon.go b/client/ui/tray_icon.go index 70344b2ce..6c7b85d79 100644 --- a/client/ui/tray_icon.go +++ b/client/ui/tray_icon.go @@ -119,18 +119,18 @@ func (t *Tray) iconForState() (icon, dark []byte) { // Windows: colored PNGs. switch { case connecting: - return iconConnecting, nil + return iconConnecting, iconConnectingDark case errored: - return iconError, nil + return iconError, iconErrorDark case needsLogin: - return iconNeedsLogin, nil + return iconNeedsLogin, iconNeedsLogin case connected && hasUpdate: - return iconUpdateConnected, nil + return iconUpdateConnected, iconUpdateConnectedDark case connected: return iconConnected, iconConnectedDark case hasUpdate: - return iconUpdateDisconnected, nil + return iconUpdateDisconnected, iconUpdateDisconnectedDark default: - return iconDisconnected, nil + return iconDisconnected, iconDisconnected } }