gnome-shell/0001-extensionSystem-Disable-extension-before-unloading-s.patch
Stephen Gallagher 900baaef0a
Fix crashes when locking the screen while certain extensions are active
Resolves: rhbz#1817082

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-05-20 09:05:22 -04:00

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