diff --git a/js/ui/status/network.js b/js/ui/status/network.js index fe60a7cad..33eb4d451 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -2047,6 +2047,7 @@ const NMApplet = new Lang.Class({ let default_ip4 = null; let default_ip6 = null; let active_vpn = null; + let active_any = null; for (let i = 0; i < this._activeConnections.length; i++) { let a = this._activeConnections[i]; @@ -2077,10 +2078,15 @@ const NMApplet = new Lang.Class({ if (a.default6) default_ip6 = a; - if (a._type == 'vpn') - active_vpn = a; - else if (a.state == NetworkManager.ActiveConnectionState.ACTIVATING) + if (a.state == NetworkManager.ActiveConnectionState.ACTIVATING) activating = a; + else if (a.state == NetworkManager.ActiveConnectionState.ACTIVE) + active_any = a; + + if (a._type == 'vpn' && + (a.state == NetworkManager.ActiveConnectionState.ACTIVATING || + a.state == NetworkManager.ActiveConnectionState.ACTIVE)) + active_vpn = a; if (!a._primaryDevice) { if (a._type != NetworkManager.SETTING_VPN_SETTING_NAME) { @@ -2108,7 +2114,7 @@ const NMApplet = new Lang.Class({ } } - this._mainConnection = activating || default_ip4 || default_ip6 || this._activeConnections[0] || null; + this._mainConnection = activating || default_ip4 || default_ip6 || active_any || null; this._vpnConnection = active_vpn; },