🪲 Fix incompatibility with the magic-lamp extension
This commit is contained in:
+3
-2
@@ -7,11 +7,12 @@ SPDX-License-Identifier: CC-BY-4.0
|
|||||||
|
|
||||||
## [Burn My Windows 29](https://github.com/schneegans/Burn-My-Windows/releases/tag/v29)
|
## [Burn My Windows 29](https://github.com/schneegans/Burn-My-Windows/releases/tag/v29)
|
||||||
|
|
||||||
**Release Date:** TBD
|
**Release Date:** 2023-04-08
|
||||||
|
|
||||||
#### Bug Fixes
|
#### Bug Fixes
|
||||||
|
|
||||||
* Beetle fixed a regression introduced with the severe refactoring in the previous version: The window-close animations of Burn-My-Windows were not shown in front of full-screen windows.
|
* Fixed a regression which caused window-close animations not to shown in front of full-screen windows.
|
||||||
|
* Fixed an incompatibility with the [Compiz alike magic lamp effect](https://extensions.gnome.org/extension/3740/compiz-alike-magic-lamp-effect/).
|
||||||
|
|
||||||
## [Burn My Windows 28](https://github.com/schneegans/Burn-My-Windows/releases/tag/v28)
|
## [Burn My Windows 28](https://github.com/schneegans/Burn-My-Windows/releases/tag/v28)
|
||||||
|
|
||||||
|
|||||||
+9
-9
@@ -136,8 +136,8 @@ class Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We will monkey-patch these methods. Let's store the original ones.
|
// We will monkey-patch these methods. Let's store the original ones.
|
||||||
this._origShouldAnimateActor = WindowManager.prototype._shouldAnimateActor;
|
this._origShouldAnimateActor = Main.wm._shouldAnimateActor;
|
||||||
this._origWaitForOverviewToHide = WindowManager.prototype._waitForOverviewToHide;
|
this._origWaitForOverviewToHide = Main.wm._waitForOverviewToHide;
|
||||||
this._origAddWindowClone = Workspace.prototype._addWindowClone;
|
this._origAddWindowClone = Workspace.prototype._addWindowClone;
|
||||||
this._origWindowRemoved = Workspace.prototype._windowRemoved;
|
this._origWindowRemoved = Workspace.prototype._windowRemoved;
|
||||||
this._origDoRemoveWindow = Workspace.prototype._doRemoveWindow;
|
this._origDoRemoveWindow = Workspace.prototype._doRemoveWindow;
|
||||||
@@ -165,7 +165,7 @@ class Extension {
|
|||||||
// was called by either _mapWindow or _destroyWindow. If so, we return true. Let's see
|
// was called by either _mapWindow or _destroyWindow. If so, we return true. Let's see
|
||||||
// if this breaks stuff left and right...
|
// if this breaks stuff left and right...
|
||||||
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1120
|
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1120
|
||||||
WindowManager.prototype._shouldAnimateActor = function(actor, types) {
|
Main.wm._shouldAnimateActor = function(actor, types) {
|
||||||
const caller = (new Error()).stack.split('\n')[1];
|
const caller = (new Error()).stack.split('\n')[1];
|
||||||
const forClosing = caller.includes('_destroyWindow@');
|
const forClosing = caller.includes('_destroyWindow@');
|
||||||
const forOpening = caller.includes('_mapWindow@');
|
const forOpening = caller.includes('_mapWindow@');
|
||||||
@@ -259,7 +259,7 @@ class Extension {
|
|||||||
|
|
||||||
// Usually, windows are faded in after the overview is completely hidden. We enable
|
// Usually, windows are faded in after the overview is completely hidden. We enable
|
||||||
// window-open animations by not waiting for this.
|
// window-open animations by not waiting for this.
|
||||||
WindowManager.prototype._waitForOverviewToHide = async function() {
|
Main.wm._waitForOverviewToHide = async function() {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -348,11 +348,11 @@ class Extension {
|
|||||||
global.window_manager.disconnect(this._killEffectsSignal);
|
global.window_manager.disconnect(this._killEffectsSignal);
|
||||||
|
|
||||||
// Restore the original window-open and window-close animations.
|
// Restore the original window-open and window-close animations.
|
||||||
Workspace.prototype._addWindowClone = this._origAddWindowClone;
|
Workspace.prototype._addWindowClone = this._origAddWindowClone;
|
||||||
Workspace.prototype._windowRemoved = this._origWindowRemoved;
|
Workspace.prototype._windowRemoved = this._origWindowRemoved;
|
||||||
Workspace.prototype._doRemoveWindow = this._origDoRemoveWindow;
|
Workspace.prototype._doRemoveWindow = this._origDoRemoveWindow;
|
||||||
WindowManager.prototype._shouldAnimateActor = this._origShouldAnimateActor;
|
Main.wm._shouldAnimateActor = this._origShouldAnimateActor;
|
||||||
WindowManager.prototype._waitForOverviewToHide = this._origWaitForOverviewToHide;
|
Main.wm._waitForOverviewToHide = this._origWaitForOverviewToHide;
|
||||||
|
|
||||||
if (WindowPreview) {
|
if (WindowPreview) {
|
||||||
WindowPreview.prototype._deleteAll = this._origDeleteAll;
|
WindowPreview.prototype._deleteAll = this._origDeleteAll;
|
||||||
|
|||||||
Reference in New Issue
Block a user