rfkill: Consider HasAirplaneMode

`ShouldShowAirplaneMode` only considers whether airplane mode
should be shown for the form factor, not whether there are
any actual kill switches available.

That's tracked in a separate property, `HasAirplaneMode`.

Take that into account for our `:show-airplane-mode` property,
so that it reflects when airplane mode should and *can* be shown.

Right now we only show airplane mode when it is enabled (and
therefore available), but this will change in the future.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2385>
This commit is contained in:
Florian Müllner 2022-07-18 20:47:47 +02:00 committed by Marge Bot
parent 98cbc31e86
commit e062e96ae6
2 changed files with 3 additions and 1 deletions

View File

@ -1,6 +1,7 @@
<node>
<interface name="org.gnome.SettingsDaemon.Rfkill">
<property name="AirplaneMode" type="b" access="readwrite"/>
<property name="HasAirplaneMode" type="b" access="read"/>
<property name="HardwareAirplaneMode" type="b" access="read"/>
<property name="BluetoothAirplaneMode" type="b" access="readwrite"/>
<property name="BluetoothHasAirplaneMode" type="b" access="read"/>

View File

@ -60,7 +60,7 @@ const RfkillManager = GObject.registerClass({
}
get show_airplane_mode() {
return this._proxy.ShouldShowAirplaneMode;
return this._proxy.HasAirplaneMode && this._proxy.ShouldShowAirplaneMode;
}
/* eslint-enable camelcase */
@ -73,6 +73,7 @@ const RfkillManager = GObject.registerClass({
case 'HardwareAirplaneMode':
this.notify('hw-airplane-mode');
break;
case 'HasAirplaneMode':
case 'ShouldShowAirplaneMode':
this.notify('show-airplane-mode');
break;