status/bluetooth: Indicate progress on toggle
Turning bluetooth on or off can be very slow – 10-15 seconds on my system – and we currently don't provide any feedback that something is indeed happening until the state changes at last. Address this by using the `acquiring` icon when the adapter is in a transitioning state. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5773 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2444>
This commit is contained in:
parent
d54dc08a32
commit
6a23e8ee0f
@ -178,14 +178,31 @@ class BluetoothToggle extends QuickToggle {
|
||||
this._client.bind_property('active',
|
||||
this, 'checked',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
this._client.bind_property_full('active',
|
||||
this._client.bind_property_full('adapter-state',
|
||||
this, 'icon-name',
|
||||
GObject.BindingFlags.SYNC_CREATE,
|
||||
(bind, source) => [true, source ? 'bluetooth-active-symbolic' : 'bluetooth-disabled-symbolic'],
|
||||
(bind, source) => [true, this._getIconNameFromState(source)],
|
||||
null);
|
||||
|
||||
this.connect('clicked', () => this._client.toggleActive());
|
||||
}
|
||||
|
||||
_getIconNameFromState(state) {
|
||||
switch (state) {
|
||||
case AdapterState.ON:
|
||||
return 'bluetooth-active-symbolic';
|
||||
case AdapterState.OFF:
|
||||
case AdapterState.ABSENT:
|
||||
return 'bluetooth-disabled-symbolic';
|
||||
case AdapterState.TURNING_ON:
|
||||
case AdapterState.TURNING_OFF:
|
||||
return 'bluetooth-acquiring-symbolic';
|
||||
default:
|
||||
console.warn(`Unexpected state ${
|
||||
GObject.enum_to_string(AdapterState, state)}`);
|
||||
return '';
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var Indicator = GObject.registerClass(
|
||||
|
Loading…
Reference in New Issue
Block a user