[gnome-shell] status/bluetooth: Indicate progress on toggle
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] status/bluetooth: Indicate progress on toggle
- Date: Sat, 3 Sep 2022 15:11:05 +0000 (UTC)
commit 6a23e8ee0f4e859ac3aa0098c102d13946ac3732
Author: Florian Müllner <fmuellner gnome org>
Date: Tue Aug 23 00:06:42 2022 +0200
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>
js/ui/status/bluetooth.js | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/status/bluetooth.js b/js/ui/status/bluetooth.js
index 9580e7b4c7..d4de597ad7 100644
--- a/js/ui/status/bluetooth.js
+++ b/js/ui/status/bluetooth.js
@@ -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(
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]