status/network: Consider active connection for network's active state

We currently show a network as connected when it includes the
device's active access point.

However when connected to an OWE transition network, the public
AP redirects to a hidden AP that we ignore. To handle that case,
also consider a network active when it includes the currently
active connection.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6918

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2927>
This commit is contained in:
Florian Müllner 2023-08-29 18:54:01 +02:00 committed by Marge Bot
parent fa4d4af4c6
commit 0bfc6bd0c0

View File

@ -780,6 +780,7 @@ const WirelessNetwork = GObject.registerClass({
this._device.connectObject( this._device.connectObject(
'notify::active-access-point', () => this.notify('is-active'), 'notify::active-access-point', () => this.notify('is-active'),
'notify::active-connection', () => this.notify('is-active'),
this); this);
this._accessPoints = new Set(); this._accessPoints = new Set();
@ -814,7 +815,14 @@ const WirelessNetwork = GObject.registerClass({
} }
get is_active() { get is_active() {
return this._accessPoints.has(this._device.activeAccessPoint); if (this._accessPoints.has(this._device.activeAccessPoint))
return true;
const {activeConnection} = this._device;
if (activeConnection)
return this._connections.includes(activeConnection.connection);
return false;
} }
hasAccessPoint(ap) { hasAccessPoint(ap) {