Blob Blame History Raw
From f9ec2f285f9658cf422d3c5a0db056ccaeaa4aa2 Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com>
Date: Fri, 8 Nov 2013 14:39:23 +0100
Subject: [PATCH 6/6] Prevent SESSION_MODE extensions from being
 enabled/disabled

gnome-shell always enables this kind of extensions and doesn't allow
disabling them so reflect that in the UI.
---
 gtweak/gshellwrapper.py                 | 6 +++---
 gtweak/tweaks/tweak_shell_extensions.py | 3 ++-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/gtweak/gshellwrapper.py b/gtweak/gshellwrapper.py
index 3b0cf16..9b40516 100644
--- a/gtweak/gshellwrapper.py
+++ b/gtweak/gshellwrapper.py
@@ -91,7 +91,8 @@ class GnomeShell:
 
     EXTENSION_TYPE = {
         "SYSTEM"        :   1,
-        "PER_USER"      :   2
+        "PER_USER"      :   2,
+        "SESSION_MODE"  :   3,
     }
 
     DATA_DIR = os.path.join(GLib.get_user_data_dir(), "gnome-shell")
@@ -138,8 +139,7 @@ class GnomeShell32(GnomeShell):
         return self._proxy.proxy.ListExtensions()
 
     def extension_is_active(self, state, uuid):
-        return state == GnomeShell.EXTENSION_STATE["ENABLED"] and \
-                self._settings.setting_is_in_list(self.EXTENSION_ENABLED_KEY, uuid)
+        return state == GnomeShell.EXTENSION_STATE["ENABLED"]
 
     def enable_extension(self, uuid):
         self._settings.setting_add_to_list(self.EXTENSION_ENABLED_KEY, uuid)
diff --git a/gtweak/tweaks/tweak_shell_extensions.py b/gtweak/tweaks/tweak_shell_extensions.py
index e69b92f..19055c0 100644
--- a/gtweak/tweaks/tweak_shell_extensions.py
+++ b/gtweak/tweaks/tweak_shell_extensions.py
@@ -34,7 +34,8 @@ class _ShellExtensionTweak(Tweak):
         if state == GnomeShell.EXTENSION_STATE["ENABLED"] or \
            state == GnomeShell.EXTENSION_STATE["DISABLED"] or \
            state == GnomeShell.EXTENSION_STATE["INITIALIZED"]:
-            sensitive = True
+            if ext.get("type") != GnomeShell.EXTENSION_TYPE["SESSION_MODE"]:
+                sensitive = True
         elif state == GnomeShell.EXTENSION_STATE["DOWNLOADING"]:
             info = _("Extension downloading")
         elif state == GnomeShell.EXTENSION_STATE["ERROR"]:
-- 
1.8.3.1