status/location: Use correct enabled state

Commit e3a1d84992 split out the agent from the indicator, but kept
using a local 'enabled' property with no connection at all to the
actual state.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5043

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2170>
This commit is contained in:
Florian Müllner 2022-02-09 20:26:26 +01:00 committed by Marge Bot
parent d7d484a8cd
commit 5628849a40

View File

@ -232,7 +232,8 @@ class Indicator extends PanelMenu.SystemIndicator {
GObject.BindingFlags.SYNC_CREATE); GObject.BindingFlags.SYNC_CREATE);
this._item.label.text = _('Location Enabled'); this._item.label.text = _('Location Enabled');
this._onOffAction = this._item.menu.addAction(_('Disable'), this._onOnOffAction.bind(this)); this._onOffAction = this._item.menu.addAction(_('Disable'),
() => (this._agent.enabled = !this._agent.enabled));
this._item.menu.addSettingsAction(_('Privacy Settings'), 'gnome-location-panel.desktop'); this._item.menu.addSettingsAction(_('Privacy Settings'), 'gnome-location-panel.desktop');
this.menu.addMenuItem(this._item); this.menu.addMenuItem(this._item);
@ -251,17 +252,13 @@ class Indicator extends PanelMenu.SystemIndicator {
this._agent.disconnect(this._maxAccuracyId); this._agent.disconnect(this._maxAccuracyId);
} }
_onOnOffAction() {
this.enabled = !this.enabled;
}
_onSessionUpdated() { _onSessionUpdated() {
let sensitive = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter; let sensitive = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
this.menu.setSensitive(sensitive); this.menu.setSensitive(sensitive);
} }
_updateMenuLabels() { _updateMenuLabels() {
if (this.enabled) { if (this._agent.enabled) {
this._item.label.text = this._indicator.visible this._item.label.text = this._indicator.visible
? _('Location In Use') ? _('Location In Use')
: _('Location Enabled'); : _('Location Enabled');