status/bluetooth: Bail out and hide UI when there's no adapter
While _sync() does already handle the case where there's no adapter just fine (hiding the item and the indicator), let's make the handling a bit more obvious and add an explicit check for !this._adapter where we bail out and hide the UI. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2188>
This commit is contained in:
parent
109e2968e2
commit
aaf47167b5
@ -130,13 +130,20 @@ class Indicator extends PanelMenu.SystemIndicator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_sync() {
|
_sync() {
|
||||||
let devices = this._getDeviceInfos();
|
const adapterJustAppeared = !this._adapter && this._client.default_adapter;
|
||||||
|
this._adapter = this._client.default_adapter ?? null;
|
||||||
|
if (!this._adapter) {
|
||||||
|
this._item.visible = false;
|
||||||
|
this._indicator.visible = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const devices = this._getDeviceInfos();
|
||||||
const connectedDevices = devices.filter(dev => dev.connected);
|
const connectedDevices = devices.filter(dev => dev.connected);
|
||||||
const nConnectedDevices = connectedDevices.length;
|
const nConnectedDevices = connectedDevices.length;
|
||||||
|
|
||||||
if (this._client.default_adapter && this._adapter)
|
if (!adapterJustAppeared)
|
||||||
this._setHadSetupDevices(devices.length > 0);
|
this._setHadSetupDevices(devices.length > 0);
|
||||||
this._adapter = this._client.default_adapter ?? null;
|
|
||||||
|
|
||||||
let sensitive = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
|
let sensitive = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user