[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.
This commit is contained in:
Zoltán Papp
2026-06-24 16:05:07 +02:00
parent 27616ff004
commit 98b865b7f6
2 changed files with 18 additions and 6 deletions
+12
View File
@@ -18,18 +18,30 @@ var iconDisconnected []byte
//go:embed assets/netbird-systemtray-connecting.png //go:embed assets/netbird-systemtray-connecting.png
var iconConnecting []byte var iconConnecting []byte
//go:embed assets/netbird-systemtray-connecting-dark.png
var iconConnectingDark []byte
//go:embed assets/netbird-systemtray-error.png //go:embed assets/netbird-systemtray-error.png
var iconError []byte var iconError []byte
//go:embed assets/netbird-systemtray-error-dark.png
var iconErrorDark []byte
//go:embed assets/netbird-systemtray-needs-login.png //go:embed assets/netbird-systemtray-needs-login.png
var iconNeedsLogin []byte var iconNeedsLogin []byte
//go:embed assets/netbird-systemtray-update-connected.png //go:embed assets/netbird-systemtray-update-connected.png
var iconUpdateConnected []byte var iconUpdateConnected []byte
//go:embed assets/netbird-systemtray-update-connected-dark.png
var iconUpdateConnectedDark []byte
//go:embed assets/netbird-systemtray-update-disconnected.png //go:embed assets/netbird-systemtray-update-disconnected.png
var iconUpdateDisconnected []byte var iconUpdateDisconnected []byte
//go:embed assets/netbird-systemtray-update-disconnected-dark.png
var iconUpdateDisconnectedDark []byte
//go:embed assets/netbird-systemtray-connected-macos.png //go:embed assets/netbird-systemtray-connected-macos.png
var iconConnectedMacOS []byte var iconConnectedMacOS []byte
+6 -6
View File
@@ -119,18 +119,18 @@ func (t *Tray) iconForState() (icon, dark []byte) {
// Windows: colored PNGs. // Windows: colored PNGs.
switch { switch {
case connecting: case connecting:
return iconConnecting, nil return iconConnecting, iconConnectingDark
case errored: case errored:
return iconError, nil return iconError, iconErrorDark
case needsLogin: case needsLogin:
return iconNeedsLogin, nil return iconNeedsLogin, iconNeedsLogin
case connected && hasUpdate: case connected && hasUpdate:
return iconUpdateConnected, nil return iconUpdateConnected, iconUpdateConnectedDark
case connected: case connected:
return iconConnected, iconConnectedDark return iconConnected, iconConnectedDark
case hasUpdate: case hasUpdate:
return iconUpdateDisconnected, nil return iconUpdateDisconnected, iconUpdateDisconnectedDark
default: default:
return iconDisconnected, nil return iconDisconnected, iconDisconnected
} }
} }