52 lines
1.7 KiB
Diff
52 lines
1.7 KiB
Diff
|
From 6d5e93b00b5b4ce5315276e071a98c8db5ff6463 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||
|
Date: Wed, 13 May 2020 20:10:56 +0200
|
||
|
Subject: [PATCH] extensionSystem: Disable extension before unloading
|
||
|
stylesheet
|
||
|
|
||
|
Removing a stylesheet from the theme will trigger a style update. There's
|
||
|
little point in updating the extension actors that are about to be destroyed
|
||
|
(hopefully), so call the extension's disable() function first.
|
||
|
|
||
|
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2757
|
||
|
---
|
||
|
js/ui/extensionSystem.js | 12 ++++++------
|
||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||
|
|
||
|
diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js
|
||
|
index 1a34f19e9e384b1d352207ea78eba9e7e1f80ba3..5a50b473ac2bdb25ec1a7f47cbd2d00ebf889800 100644
|
||
|
--- a/js/ui/extensionSystem.js
|
||
|
+++ b/js/ui/extensionSystem.js
|
||
|
@@ -100,22 +100,22 @@ var ExtensionManager = class {
|
||
|
} catch (e) {
|
||
|
this.logExtensionError(otherUuid, e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+ try {
|
||
|
+ extension.stateObj.disable();
|
||
|
+ } catch (e) {
|
||
|
+ this.logExtensionError(uuid, e);
|
||
|
+ }
|
||
|
+
|
||
|
if (extension.stylesheet) {
|
||
|
let theme = St.ThemeContext.get_for_stage(global.stage).get_theme();
|
||
|
theme.unload_stylesheet(extension.stylesheet);
|
||
|
delete extension.stylesheet;
|
||
|
}
|
||
|
|
||
|
- try {
|
||
|
- extension.stateObj.disable();
|
||
|
- } catch (e) {
|
||
|
- this.logExtensionError(uuid, e);
|
||
|
- }
|
||
|
-
|
||
|
for (let i = 0; i < order.length; i++) {
|
||
|
let otherUuid = order[i];
|
||
|
try {
|
||
|
this.lookup(otherUuid).stateObj.enable();
|
||
|
} catch (e) {
|
||
|
--
|
||
|
2.26.2
|
||
|
|