system: Track buttonGroup visibility using a group of actors
Cleanup the visibility check on actions by using an array of actors to track, so that we don't repeat the same variables multiple times. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
This commit is contained in:
parent
15c252c11d
commit
a497afe695
@ -137,15 +137,6 @@ var Indicator = class extends PanelMenu.SystemIndicator {
|
|||||||
this._sessionUpdated();
|
this._sessionUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
_updateActionsVisibility() {
|
|
||||||
let visible = (this._settingsAction.visible ||
|
|
||||||
this._orientationLockAction.visible ||
|
|
||||||
this._lockScreenAction.visible ||
|
|
||||||
this._altSwitcher.actor.visible);
|
|
||||||
|
|
||||||
this.buttonGroup.visible = visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
_sessionUpdated() {
|
_sessionUpdated() {
|
||||||
this._settingsAction.visible = Main.sessionMode.allowSettings;
|
this._settingsAction.visible = Main.sessionMode.allowSettings;
|
||||||
}
|
}
|
||||||
@ -302,15 +293,18 @@ var Indicator = class extends PanelMenu.SystemIndicator {
|
|||||||
|
|
||||||
this.menu.addMenuItem(item);
|
this.menu.addMenuItem(item);
|
||||||
|
|
||||||
|
let visibilityGroup = [
|
||||||
|
this._settingsAction,
|
||||||
|
this._orientationLockAction,
|
||||||
|
this._lockScreenAction,
|
||||||
|
this._altSwitcher.actor,
|
||||||
|
];
|
||||||
|
|
||||||
this._settingsAction.connect('notify::visible',
|
for (let actor of visibilityGroup) {
|
||||||
() => this._updateActionsVisibility());
|
actor.connect('notify::visible', () => {
|
||||||
this._orientationLockAction.connect('notify::visible',
|
this.buttonGroup.visible = visibilityGroup.some(a => a.visible);
|
||||||
() => this._updateActionsVisibility());
|
});
|
||||||
this._lockScreenAction.connect('notify::visible',
|
}
|
||||||
() => this._updateActionsVisibility());
|
|
||||||
this._altSwitcher.actor.connect('notify::visible',
|
|
||||||
() => this._updateActionsVisibility());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_onSettingsClicked() {
|
_onSettingsClicked() {
|
||||||
|
Loading…
Reference in New Issue
Block a user