49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
const GObject = imports.gi.GObject;
|
|
const Shell = imports.gi.Shell;
|
|
const Main = imports.ui.main;
|
|
const Unite = imports.misc.extensionUtils.getCurrentExtension();
|
|
const Base = Unite.imports.module.BaseModule;
|
|
|
|
var ActivitiesButton = new GObject.Class({
|
|
Name: 'UniteActivitiesButton',
|
|
Extends: Base,
|
|
|
|
_enableKey: 'hide-activities-button',
|
|
_disableValue: 'never',
|
|
|
|
_onInitialize() {
|
|
this._container = Main.panel.statusArea.activities.container;
|
|
this.appSystem = Shell.AppSystem.get_default();
|
|
this.winTracker = Shell.WindowTracker.get_default();
|
|
},
|
|
|
|
_onActivate() {
|
|
this._signals.connect(this.appSystem, 'app-state-changed', 'toggleButton');
|
|
this._signals.connect(this.winTracker, 'notify::focus-app', 'toggleButton');
|
|
|
|
this._signals.connect(Main.overview, 'showing', 'toggleButton');
|
|
this._signals.connect(Main.overview, 'hiding', 'toggleButton');
|
|
|
|
this._toggleButton();
|
|
},
|
|
|
|
_onReset() {
|
|
this._toggleButton();
|
|
},
|
|
|
|
_onDeactivate() {
|
|
this._container.show();
|
|
},
|
|
|
|
_toggleButton() {
|
|
let appMenu = Main.panel.statusArea.appMenu._targetApp != null;
|
|
let overview = Main.overview.visibleTarget;
|
|
let hidden = this._setting == 'always' || (appMenu && !overview);
|
|
|
|
if (!hidden && this._settings.get('show-desktop-name'))
|
|
hidden = !appMenu && !overview;
|
|
|
|
this._container.visible = !hidden;
|
|
}
|
|
});
|