Blame SOURCES/0001-extensionSystem-Handle-added-or-removed-sessionMode-.patch

e45623
From 1b6eb29ade832647510b36ddc13c9b88a25036df Mon Sep 17 00:00:00 2001
e45623
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
e45623
Date: Wed, 11 Sep 2019 20:18:20 +0200
e45623
Subject: [PATCH 1/4] extensionSystem: Handle added or removed sessionMode
e45623
 extensions
e45623
e45623
Right now we're only handling added sessionMode extensions correctly on
e45623
sessionMode updates, also handle the other case and disable removed
e45623
sessionMode extensions on sessionMode updates.
e45623
e45623
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
e45623
---
e45623
 js/ui/extensionSystem.js | 4 ++--
e45623
 1 file changed, 2 insertions(+), 2 deletions(-)
e45623
e45623
diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js
e45623
index 81804ea5e..77929f2a6 100644
e45623
--- a/js/ui/extensionSystem.js
e45623
+++ b/js/ui/extensionSystem.js
e45623
@@ -515,62 +515,62 @@ var ExtensionManager = class {
e45623
         if (!this._initted) {
e45623
             this._loadExtensions();
e45623
             this._initted = true;
e45623
         } else {
e45623
             this._enabledExtensions.forEach(uuid => {
e45623
                 this._callExtensionEnable(uuid);
e45623
             });
e45623
         }
e45623
         this._enabled = true;
e45623
     }
e45623
 
e45623
     _disableAllExtensions() {
e45623
         if (!this._enabled)
e45623
             return;
e45623
 
e45623
         if (this._initted) {
e45623
             this._extensionOrder.slice().reverse().forEach(uuid => {
e45623
                 this._callExtensionDisable(uuid);
e45623
             });
e45623
         }
e45623
 
e45623
         this._enabled = false;
e45623
     }
e45623
 
e45623
     _sessionUpdated() {
e45623
         // For now sessionMode.allowExtensions controls extensions from both the
e45623
         // 'enabled-extensions' preference and the sessionMode.enabledExtensions
e45623
         // property; it might make sense to make enabledExtensions independent
e45623
         // from allowExtensions in the future
e45623
         if (Main.sessionMode.allowExtensions) {
e45623
-            if (this._initted)
e45623
-                this._enabledExtensions = this._getEnabledExtensions();
e45623
+            // Take care of added or removed sessionMode extensions
e45623
+            this._onEnabledExtensionsChanged();
e45623
             this._enableAllExtensions();
e45623
         } else {
e45623
             this._disableAllExtensions();
e45623
         }
e45623
     }
e45623
 };
e45623
 Signals.addSignalMethods(ExtensionManager.prototype);
e45623
 
e45623
 class ExtensionUpdateSource extends MessageTray.Source {
e45623
     constructor() {
e45623
         const appSys = Shell.AppSystem.get_default();
e45623
         this._app = appSys.lookup_app('gnome-shell-extension-prefs.desktop');
e45623
 
e45623
         super(this._app.get_name());
e45623
     }
e45623
 
e45623
     getIcon() {
e45623
         return this._app.app_info.get_icon();
e45623
     }
e45623
 
e45623
     _createPolicy() {
e45623
         return new MessageTray.NotificationApplicationPolicy(this._app.id);
e45623
     }
e45623
 
e45623
     open() {
e45623
         this._app.activate();
e45623
         Main.overview.hide();
e45623
         Main.panel.closeCalendar();
e45623
     }
e45623
 }
e45623
-- 
e45623
2.27.0
e45623