| |
@@ -0,0 +1,51 @@
|
| |
+ 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
|
| |
+
|
| |
Resolves: rhbz#1817082
Signed-off-by: Stephen Gallagher sgallagh@redhat.com