From b2ff25b31d4e11601169f623b47ea503c93aed77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 4 Nov 2022 19:53:57 +0100 Subject: [PATCH] status/network: Fix name of initially hidden devices We assign (disambiguated) device names every time a device is added or removed, and store the name on the corresponding menu item. However menu items are only created when the device should be shown, not necessarily when it is added (unplugged ethernet cable, ongoing initialization, ...). Fix this by tracking device names separately from device items, and set the name on newly created items. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6040 Part-of: --- js/ui/status/network.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/js/ui/status/network.js b/js/ui/status/network.js index 4cc9bbdd0..37ef97784 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -1559,6 +1559,7 @@ class NMDeviceToggle extends NMToggle { this._deviceType = deviceType; this._nmDevices = new Set(); + this._deviceNames = new Map(); } setClient(client) { @@ -1613,8 +1614,12 @@ class NMDeviceToggle extends NMToggle { _syncDeviceNames() { const devices = [...this._nmDevices]; const names = NM.Device.disambiguate_names(devices); + this._deviceNames.clear(); devices.forEach( - (dev, i) => this._items.get(dev)?.setDeviceName(names[i])); + (dev, i) => { + this._deviceNames.set(dev, names[i]); + this._items.get(dev)?.setDeviceName(names[i]); + }); } _syncDeviceItem(device) { @@ -1647,6 +1652,7 @@ class NMDeviceToggle extends NMToggle { return; const item = this._createDeviceMenuItem(device); + item.setDeviceName(this._deviceNames.get(device) ?? ''); this._addItem(device, item); }