Compare commits

...

6 Commits

Author SHA1 Message Date
Simon Schneegans 3367b57c05 🪲 Fix incompatibility with the magic-lamp extension
Deploy / Bundle GNOME Shell Extension (push) Has been cancelled
Deploy / Bundle KWin Effect (push) Has been cancelled
2023-04-08 09:27:31 +02:00
SoftExpert 9905e643a5 🌐 Translated using Weblate (Romanian) 2023-04-07 16:10:33 +02:00
Simon Schneegans 0d8aed5ad0 🔀 Merge pull request #322 from Schneegans/feature/fixes 2023-04-07 16:09:33 +02:00
Simon Schneegans 79601cc8d0 📝 Add changelog entry 2023-04-07 06:37:24 +02:00
Simon Schneegans f021ea7ede 🪲 Fix effects in front of fullscreen windows 2023-04-07 06:35:17 +02:00
Simon Schneegans f3e9917729 🎉 Bump version number 2023-04-07 06:23:59 +02:00
5 changed files with 32 additions and 15 deletions
+9
View File
@@ -5,6 +5,15 @@ SPDX-License-Identifier: CC-BY-4.0
# Changelog of the Burn-My-Windows Extension # Changelog of the Burn-My-Windows Extension
## [Burn My Windows 29](https://github.com/schneegans/Burn-My-Windows/releases/tag/v29)
**Release Date:** 2023-04-08
#### Bug Fixes
* 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)
**Release Date:** 2023-04-06 **Release Date:** 2023-04-06
+9 -9
View File
@@ -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;
+1 -1
View File
@@ -14,5 +14,5 @@
"44" "44"
], ],
"url": "https://github.com/Schneegans/Burn-My-Windows", "url": "https://github.com/Schneegans/Burn-My-Windows",
"version": 28 "version": 29
} }
+3 -3
View File
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: burn-my-windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-21 16:46+0100\n" "POT-Creation-Date: 2023-02-21 16:46+0100\n"
"PO-Revision-Date: 2023-02-25 03:39+0000\n" "PO-Revision-Date: 2023-04-07 05:50+0000\n"
"Last-Translator: SoftExpert <softexpert@gmail.com>\n" "Last-Translator: SoftExpert <softexpert@gmail.com>\n"
"Language-Team: Romanian <https://hosted.weblate.org/projects/burn-my-windows/" "Language-Team: Romanian <https://hosted.weblate.org/projects/burn-my-windows/"
"core/ro/>\n" "core/ro/>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n" "20)) ? 1 : 2;\n"
"X-Generator: Weblate 4.16-dev\n" "X-Generator: Weblate 4.17-dev\n"
#: src/ProfileManager.js:168 resources/ui/gtk4/prefs.ui:220 #: src/ProfileManager.js:168 resources/ui/gtk4/prefs.ui:220
#: resources/ui/gtk3/prefs.ui:265 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:265 resources/ui/adw/prefs.ui:103
@@ -48,7 +48,7 @@ msgstr "Schemă de culori implicită"
#: src/ProfileManager.js:173 resources/ui/gtk4/prefs.ui:279 #: src/ProfileManager.js:173 resources/ui/gtk4/prefs.ui:279
#: resources/ui/gtk3/prefs.ui:324 resources/ui/adw/prefs.ui:134 #: resources/ui/gtk3/prefs.ui:324 resources/ui/adw/prefs.ui:134
msgid "Dark Color Scheme" msgid "Dark Color Scheme"
msgstr "Schema de culori întunecate" msgstr "Schemă de culori întunecate"
#: src/ProfileManager.js:174 resources/ui/gtk4/prefs.ui:307 #: src/ProfileManager.js:174 resources/ui/gtk4/prefs.ui:307
#: resources/ui/gtk3/prefs.ui:352 resources/ui/adw/prefs.ui:148 #: resources/ui/gtk3/prefs.ui:352 resources/ui/adw/prefs.ui:148
+10 -2
View File
@@ -14,8 +14,8 @@
'use strict'; 'use strict';
const {Gio, Shell, GObject, Clutter} = imports.gi; const {Gio, Shell, GObject, Clutter, Meta} = imports.gi;
const ByteArray = imports.byteArray; const ByteArray = imports.byteArray;
const Main = imports.ui.main; const Main = imports.ui.main;
const ExtensionUtils = imports.misc.extensionUtils; const ExtensionUtils = imports.misc.extensionUtils;
@@ -113,6 +113,10 @@ var Shader = GObject.registerClass(
this._timeline.set_duration(duration); this._timeline.set_duration(duration);
this._timeline.start(); this._timeline.start();
// Make sure that no fullscreen window is drawn over our animations.
Meta.disable_unredirect_for_display(global.display);
global.begin_work();
// Reset progress value. // Reset progress value.
this._progress = 0; this._progress = 0;
this._testMode = testMode; this._testMode = testMode;
@@ -147,6 +151,10 @@ var Shader = GObject.registerClass(
return; return;
} }
// Restore unredirecting behavior for fullscreen windows.
Meta.enable_unredirect_for_display(global.display);
global.end_work();
this.emit('end-animation'); this.emit('end-animation');
} }