summaryrefslogtreecommitdiffstats
path: root/multi-monitors-add-on/multi-monitors-add-on@spin83/indicator.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-02-05 08:57:47 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-02-05 09:07:55 +0000
commit3713a4d3bf8ae2df7d02e63b5b827353e5121d19 (patch)
treecd422f385434aa71efd7f501b0da711ea93080a6 /multi-monitors-add-on/multi-monitors-add-on@spin83/indicator.js
parentAdding debian version 20230204-1. (diff)
downloadgnome-shell-extensions-extra-3713a4d3bf8ae2df7d02e63b5b827353e5121d19.tar.xz
gnome-shell-extensions-extra-3713a4d3bf8ae2df7d02e63b5b827353e5121d19.zip
Merging upstream version 20230205.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'multi-monitors-add-on/multi-monitors-add-on@spin83/indicator.js')
-rw-r--r--multi-monitors-add-on/multi-monitors-add-on@spin83/indicator.js109
1 files changed, 0 insertions, 109 deletions
diff --git a/multi-monitors-add-on/multi-monitors-add-on@spin83/indicator.js b/multi-monitors-add-on/multi-monitors-add-on@spin83/indicator.js
deleted file mode 100644
index 8b500ee..0000000
--- a/multi-monitors-add-on/multi-monitors-add-on@spin83/indicator.js
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
-Copyright (C) 2014 spin83
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, visit https://www.gnu.org/licenses/.
-*/
-
-const { St, Gio, GLib, GObject } = imports.gi;
-
-const Util = imports.misc.util;
-const Main = imports.ui.main;
-const PanelMenu = imports.ui.panelMenu;
-
-const Gettext = imports.gettext.domain('multi-monitors-add-on');
-const _ = Gettext.gettext;
-const CE = imports.misc.extensionUtils.getCurrentExtension();
-const MultiMonitors = CE.imports.extension;
-const Convenience = CE.imports.convenience;
-const extensionPath = CE.path;
-
-var MultiMonitorsIndicator = (() => {
- let MultiMonitorsIndicator = class MultiMonitorsIndicator extends PanelMenu.Button {
- _init() {
- super._init(0.0, "MultiMonitorsAddOn", false);
-
- Convenience.initTranslations();
-
- this.text = null;
- this._mmStatusIcon = new St.BoxLayout({ style_class: 'multimonitor-status-indicators-box' });
- this._mmStatusIcon.hide();
- this.add_child(this._mmStatusIcon);
- this._leftRightIcon = true;
- this.menu.addAction(_("Preferences"), this._onPreferences.bind(this));
- this._viewMonitorsId = Main.layoutManager.connect('monitors-changed', this._viewMonitors.bind(this));
- this._viewMonitors();
- }
-
- _onDestroy() {
- Main.layoutManager.disconnect(this._viewMonitorsId);
- super._onDestroy();
- }
-
- _syncIndicatorsVisible() {
- this._mmStatusIcon.visible = this._mmStatusIcon.get_children().some(a => a.visible);
- }
-
- _icon_name (icon, iconName) {
- icon.set_gicon(Gio.icon_new_for_string(extensionPath+"/icons/"+iconName+".svg"));
- }
-
- _viewMonitors() {
- let monitors = this._mmStatusIcon.get_children();
-
- let monitorChange = Main.layoutManager.monitors.length - monitors.length;
- if(monitorChange>0){
- global.log("Add Monitors ...");
- for(let idx = 0; idx<monitorChange; idx++){
- let icon;
- icon = new St.Icon({style_class: 'system-status-icon multimonitor-status-icon'});
- this._mmStatusIcon.add_child(icon);
- icon.connect('notify::visible', this._syncIndicatorsVisible.bind(this));
-
- if (this._leftRightIcon)
- this._icon_name(icon, 'multi-monitors-l-symbolic');
- else
- this._icon_name(icon, 'multi-monitors-r-symbolic');
- this._leftRightIcon = !this._leftRightIcon;
- }
- this._syncIndicatorsVisible();
- }
- else if(monitorChange<0){
- global.log("Remove Monitors ...");
- monitorChange = -monitorChange;
-
- for(let idx = 0; idx<monitorChange; idx++){
- let icon = this._mmStatusIcon.get_last_child();
- this._mmStatusIcon.remove_child(icon);
- icon.destroy();
- this._leftRightIcon = !this._leftRightIcon;
- }
- }
- }
-
- _onPreferences() {
- const uuid = "multi-monitors-add-on@spin83";
- Gio.DBus.session.call(
- 'org.gnome.Shell.Extensions',
- '/org/gnome/Shell/Extensions',
- 'org.gnome.Shell.Extensions',
- 'OpenExtensionPrefs',
- new GLib.Variant('(ssa{sv})', [uuid, '', {}]),
- null,
- Gio.DBusCallFlags.NONE,
- -1,
- null);
- }
- };
- return GObject.registerClass(MultiMonitorsIndicator);
-})();