status/network: Hide sections if networking is disabled
When moving to quick settings, we will no longer have a single parent we can hide instead. This is only really needed for VPN - devices go away when networking is disabled, connections (as in: configuration) do not - but it's simpler to just handle this in the base class than adding a _shouldBeVisible() method the VPN section can override. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2408>
This commit is contained in:
parent
8e685246e2
commit
cd9284e48f
@ -1342,6 +1342,9 @@ const NMSection = GObject.registerClass({
|
|||||||
|
|
||||||
this._client?.disconnectObject(this);
|
this._client?.disconnectObject(this);
|
||||||
this._client = client;
|
this._client = client;
|
||||||
|
this._client?.connectObject(
|
||||||
|
'notify::networking-enabled', () => this._sync(),
|
||||||
|
this);
|
||||||
|
|
||||||
this._items.forEach(item => item.destroy());
|
this._items.forEach(item => item.destroy());
|
||||||
this._items.clear();
|
this._items.clear();
|
||||||
@ -1461,7 +1464,8 @@ const NMSection = GObject.registerClass({
|
|||||||
}
|
}
|
||||||
|
|
||||||
_sync() {
|
_sync() {
|
||||||
this.visible = this._items.size > 0;
|
this.visible =
|
||||||
|
this._client?.networking_enabled && this._items.size > 0;
|
||||||
this._updateItemsVisibility();
|
this._updateItemsVisibility();
|
||||||
this._updateChecked();
|
this._updateChecked();
|
||||||
this._itemBinding.source = this._getPrimaryItem();
|
this._itemBinding.source = this._getPrimaryItem();
|
||||||
@ -1875,9 +1879,6 @@ class Indicator extends PanelMenu.SystemIndicator {
|
|||||||
this._client.bind_property('nm-running',
|
this._client.bind_property('nm-running',
|
||||||
this, 'visible',
|
this, 'visible',
|
||||||
GObject.BindingFlags.SYNC_CREATE);
|
GObject.BindingFlags.SYNC_CREATE);
|
||||||
this._client.bind_property('networking-enabled',
|
|
||||||
this.menu.actor, 'visible',
|
|
||||||
GObject.BindingFlags.SYNC_CREATE);
|
|
||||||
|
|
||||||
this._client.connectObject(
|
this._client.connectObject(
|
||||||
'notify::primary-connection', () => this._syncMainConnection(),
|
'notify::primary-connection', () => this._syncMainConnection(),
|
||||||
|
Loading…
Reference in New Issue
Block a user