summaryrefslogtreecommitdiffstats
path: root/extensions/middleclickclose/middleclickclose@paolo.tranquilli.gmail.com/extension.js
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/middleclickclose/middleclickclose@paolo.tranquilli.gmail.com/extension.js')
-rw-r--r--extensions/middleclickclose/middleclickclose@paolo.tranquilli.gmail.com/extension.js121
1 files changed, 0 insertions, 121 deletions
diff --git a/extensions/middleclickclose/middleclickclose@paolo.tranquilli.gmail.com/extension.js b/extensions/middleclickclose/middleclickclose@paolo.tranquilli.gmail.com/extension.js
deleted file mode 100644
index 931a405..0000000
--- a/extensions/middleclickclose/middleclickclose@paolo.tranquilli.gmail.com/extension.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/* This extension is a derived work of the Gnome Shell.
-*
-* Copyright (c) 2013 Paolo Tranquilli
-*
-* This extension 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 extension 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 extension; if not, write to the Free Software
-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-const CLOSE_BUTTON = 'close-button';
-const REARRANGE_DELAY = 'rearrange-delay';
-
-
-const St = imports.gi.St;
-const Main = imports.ui.main;
-const Workspace = imports.ui.workspace
-const WindowPreview = imports.ui.windowPreview.WindowPreview
-const Mainloop = imports.mainloop;
-const ExtensionUtils = imports.misc.extensionUtils;
-const GObject = imports.gi.GObject;
-
-const Me = ExtensionUtils.getCurrentExtension();
-
-var Init = class Init {
-
- _connectSettings() {
- this._settingsSignals = [];
- this._settingsSignals.push(this._settings.connect('changed::'+CLOSE_BUTTON, this._setCloseButton.bind(this)));
- this._settingsSignals.push(this._settings.connect('changed::'+REARRANGE_DELAY, this._setRearrangeDelay.bind(this)));
- }
-
- _disconnectSettings() {
- while(this._settingsSignals.length > 0) {
- this._settings.disconnect(this._settingsSignals.pop());
- }
- }
-
- _setCloseButton() {
- this._closeButton = this._settings.get_enum(CLOSE_BUTTON) + 1;
- }
-
- _setRearrangeDelay() {
- this._rearrangeDelay = this._settings.get_int(REARRANGE_DELAY);
- }
-
- enable() {
- this._oldAddWindowClone = Workspace.Workspace.prototype._addWindowClone;
- this._settings = ExtensionUtils.getSettings();
- this._oldDelay = Workspace.WINDOW_REPOSITIONING_DELAY;
- this._setCloseButton();
- this._setRearrangeDelay();
- // I'll go with a closure, not sure how to do it otherwise
- let init = this;
-
- // my handling logic
- const onClicked = function(action, actor) {
- this._selected = true;
- if (action.get_button() == init._closeButton) {
- this._deleteAll();
- } else {
- WindowPreview.prototype._activate.apply(this);
- }
- };
-
- // override _addWindowClone to add my event handler
- Workspace.Workspace.prototype._addWindowClone = function(metaWindow) {
- let clone = init._oldAddWindowClone.apply(this, [metaWindow]);
-
- // remove default 'clicked' signal handler
- let id = GObject.signal_handler_find(
- clone.get_actions()[0],
- {signalId: 'clicked'}
- )
- clone.get_actions()[0].disconnect(id);
-
- // add custom 'clicked' signal handler
- clone.get_actions()[0].connect('clicked', onClicked.bind(clone));
-
- return clone;
- }
-
- // override Workspace's _doRemoveWindow in order to put into it the
- // parameteriseable rearrangement delay. Rather than copy the code from
- // workspace.js, we reuse it but remove the scheduled rearrangement task
- // (as its 750ms delay is hard-coded...)
- Workspace.WINDOW_REPOSITIONING_DELAY = Math.max(init._rearrangeDelay,1);
-
- this._connectSettings();
- }
-
- disable() {
- Workspace.WINDOW_REPOSITIONING_DELAY = this._oldDelay;
- Workspace.Workspace.prototype._addWindowClone = this._oldAddWindowClone;
- this._disconnectSettings();
- }
-}
-
-function init() {
- ExtensionUtils.initTranslations();
-}
-
-let _init;
-function enable() {
- _init = new Init();
- _init.enable();
-}
-
-function disable() {
- _init?.disable();
- _init = null;
-}