Commit eeabdd15 authored by Jonas Dreßler's avatar Jonas Dreßler Committed by Marge Bot
Browse files

status/bluetooth: Clear list of connected signals on adapter changes

With the porting of gnome-bluetooth to the new GListModel API the
behavior regarding removing adapters changed: It now no longer
guarantees to emit "device-removed" signals for the paired devices when
the adapter gets removed.

This means we need to do that ourselves now, so clear the list of
connected signals when the default adapter changes.

Part-of: <!2214>
parent 94d9264d
Pipeline #370536 passed with stages
in 7 minutes and 18 seconds
......@@ -27,6 +27,17 @@ class Indicator extends PanelMenu.SystemIndicator {
this._hadSetupDevices = global.settings.get_boolean(HAD_BLUETOOTH_DEVICES_SETUP);
this._client = new GnomeBluetooth.Client();
this._client.connect('notify::default-adapter', () => {
const newAdapter = this._client.default_adapter ?? null;
if (newAdapter && this._adapter)
this._setHadSetupDevices(this._getDeviceInfos().length > 0);
this._adapter = newAdapter;
this._deviceNotifyConnected.clear();
this._sync();
});
this._client.connect('notify::default-adapter-powered', this._sync.bind(this));
this._proxy = new RfkillManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH,
......@@ -133,10 +144,6 @@ class Indicator extends PanelMenu.SystemIndicator {
const connectedDevices = devices.filter(dev => dev.connected);
const nConnectedDevices = connectedDevices.length;
if (this._client.default_adapter && this._adapter)
this._setHadSetupDevices(devices.length > 0);
this._adapter = this._client.default_adapter ?? null;
let sensitive = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
this.menu.setSensitive(sensitive);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment