1
0
Fork 0

Updating 44/vertical-workspaces to version 37+20231208 [0d82192].

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-03-24 19:42:07 +01:00
parent 975b88c6bb
commit 07381ac119
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
37 changed files with 9559 additions and 4338 deletions

View file

@ -10,81 +10,101 @@
'use strict';
const { GObject, Clutter, Meta } = imports.gi;
const Clutter = imports.gi.Clutter;
const GObject = imports.gi.GObject;
const Meta = imports.gi.Meta;
const Main = imports.ui.main;
const WindowManager = imports.ui.windowManager;
const Me = imports.misc.extensionUtils.getCurrentExtension();
const _Util = Me.imports.lib.util;
let _overrides;
const MINIMIZE_WINDOW_ANIMATION_TIME = WindowManager.MINIMIZE_WINDOW_ANIMATION_TIME;
const MINIMIZE_WINDOW_ANIMATION_MODE = WindowManager.MINIMIZE_WINDOW_ANIMATION_MODE;
let Me;
let opt;
let _firstRun = true;
function update(reset = false) {
opt = Me.imports.lib.settings.opt;
const moduleEnabled = opt.get('windowManagerModule', true);
reset = reset || !moduleEnabled;
var WindowManagerModule = class {
constructor(me) {
Me = me;
opt = Me.opt;
// don't even touch this module if disabled
if (_firstRun && reset)
return;
this._firstActivation = true;
this.moduleEnabled = false;
this._overrides = null;
_firstRun = false;
this._originalMinimizeSigId = 0;
this._minimizeSigId = 0;
this._originalUnminimizeSigId = 0;
this._unminimizeSigId = 0;
}
if (_overrides)
_overrides.removeAll();
_replaceMinimizeFunction(reset);
if (reset) {
_overrides = null;
cleanGlobals() {
Me = null;
opt = null;
return;
}
_overrides = new _Util.Overrides();
update(reset) {
this.moduleEnabled = opt.get('windowManagerModule');
const conflict = false;
_overrides.addOverride('WindowManager', WindowManager.WindowManager.prototype, WindowManagerCommon);
}
reset = reset || !this.moduleEnabled || conflict;
// ------------- Fix and adapt minimize/unminimize animations --------------------------------------
let _originalMinimizeSigId;
let _minimizeSigId;
let _originalUnminimizeSigId;
let _unminimizeSigId;
function _replaceMinimizeFunction(reset = false) {
if (reset) {
Main.wm._shellwm.disconnect(_minimizeSigId);
_minimizeSigId = 0;
Main.wm._shellwm.unblock_signal_handler(_originalMinimizeSigId);
_originalMinimizeSigId = 0;
Main.wm._shellwm.disconnect(_unminimizeSigId);
_unminimizeSigId = 0;
Main.wm._shellwm.unblock_signal_handler(_originalUnminimizeSigId);
_originalUnminimizeSigId = 0;
} else if (!_minimizeSigId) {
_originalMinimizeSigId = GObject.signal_handler_find(Main.wm._shellwm, { signalId: 'minimize' });
if (_originalMinimizeSigId) {
Main.wm._shellwm.block_signal_handler(_originalMinimizeSigId);
_minimizeSigId = Main.wm._shellwm.connect('minimize', WindowManagerCommon._minimizeWindow.bind(Main.wm));
}
_originalUnminimizeSigId = GObject.signal_handler_find(Main.wm._shellwm, { signalId: 'unminimize' });
if (_originalUnminimizeSigId) {
Main.wm._shellwm.block_signal_handler(_originalUnminimizeSigId);
_unminimizeSigId = Main.wm._shellwm.connect('unminimize', WindowManagerCommon._unminimizeWindow.bind(Main.wm));
// don't even touch the original code if module disabled
if (reset && !this._firstActivation) {
this._disableModule();
} else if (!reset) {
this._firstActivation = false;
this._activateModule();
}
if (reset && this._firstActivation)
console.debug(' WindowManagerModule - Keeping untouched');
}
}
_activateModule() {
if (!this._overrides)
this._overrides = new Me.Util.Overrides();
this._overrides.addOverride('WindowManager', WindowManager.WindowManager.prototype, WindowManagerCommon);
if (!this._minimizeSigId) {
this._originalMinimizeSigId = GObject.signal_handler_find(Main.wm._shellwm, { signalId: 'minimize' });
if (this._originalMinimizeSigId) {
Main.wm._shellwm.block_signal_handler(this._originalMinimizeSigId);
this._minimizeSigId = Main.wm._shellwm.connect('minimize', WindowManagerCommon._minimizeWindow.bind(Main.wm));
}
this._originalUnminimizeSigId = GObject.signal_handler_find(Main.wm._shellwm, { signalId: 'unminimize' });
if (this._originalUnminimizeSigId) {
Main.wm._shellwm.block_signal_handler(this._originalUnminimizeSigId);
this._unminimizeSigId = Main.wm._shellwm.connect('unminimize', WindowManagerCommon._unminimizeWindow.bind(Main.wm));
}
}
console.debug(' WindowManagerModule - Activated');
}
_disableModule() {
if (this._overrides)
this._overrides.removeAll();
this._overrides = null;
if (this._minimizeSigId) {
Main.wm._shellwm.disconnect(this._minimizeSigId);
this._minimizeSigId = 0;
}
if (this._originalMinimizeSigId) {
Main.wm._shellwm.unblock_signal_handler(this._originalMinimizeSigId);
this._originalMinimizeSigId = 0;
}
if (this._unminimizeSigId) {
Main.wm._shellwm.disconnect(this._unminimizeSigId);
this._unminimizeSigId = 0;
}
if (this._originalUnminimizeSigId) {
Main.wm._shellwm.unblock_signal_handler(this._originalUnminimizeSigId);
this._originalUnminimizeSigId = 0;
}
console.debug(' WindowManagerModule - Disabled');
}
};
// fix for mainstream bug - fullscreen windows should minimize using opacity transition
// but its being applied directly on window actor and that doesn't work
@ -109,8 +129,8 @@ const WindowManagerCommon = {
/* if (actor.meta_window.is_monitor_sized()) {
actor.get_first_child().ease({
opacity: 0,
duration: MINIMIZE_WINDOW_ANIMATION_TIME,
mode: MINIMIZE_WINDOW_ANIMATION_MODE,
duration: WindowManager.MINIMIZE_WINDOW_ANIMATION_TIME,
mode: WindowManager.MINIMIZE_WINDOW_ANIMATION_MODE,
onStopped: () => this._minimizeWindowDone(shellwm, actor),
});
} else { */
@ -140,8 +160,8 @@ const WindowManagerCommon = {
scale_y: yScale,
x: xDest,
y: yDest,
duration: MINIMIZE_WINDOW_ANIMATION_TIME,
mode: MINIMIZE_WINDOW_ANIMATION_MODE,
duration: WindowManager.MINIMIZE_WINDOW_ANIMATION_TIME,
mode: WindowManager.MINIMIZE_WINDOW_ANIMATION_MODE,
onStopped: () => this._minimizeWindowDone(shellwm, actor),
});
// }
@ -176,8 +196,8 @@ const WindowManagerCommon = {
actor.set_scale(1.0, 1.0);
actor.ease({
opacity: 255,
duration: MINIMIZE_WINDOW_ANIMATION_TIME,
mode: MINIMIZE_WINDOW_ANIMATION_MODE,
duration: WindowManager.MINIMIZE_WINDOW_ANIMATION_TIME,
mode: WindowManager.MINIMIZE_WINDOW_ANIMATION_MODE,
onStopped: () => this._unminimizeWindowDone(shellwm, actor),
});
} else { */
@ -208,8 +228,8 @@ const WindowManagerCommon = {
scale_y: 1,
x: xDest,
y: yDest,
duration: MINIMIZE_WINDOW_ANIMATION_TIME,
mode: MINIMIZE_WINDOW_ANIMATION_MODE,
duration: WindowManager.MINIMIZE_WINDOW_ANIMATION_TIME,
mode: WindowManager.MINIMIZE_WINDOW_ANIMATION_MODE,
onStopped: () => this._unminimizeWindowDone(shellwm, actor),
});
// }