Blame SOURCES/0002-tweak_shell_extensions.py-Disable-widget-if-extensio.patch

006048
From 61012b50f73e08089d9afc65ea069ce50af95a72 Mon Sep 17 00:00:00 2001
006048
From: Rui Matos <tiagomatos@gmail.com>
006048
Date: Thu, 7 Nov 2013 13:06:23 +0100
006048
Subject: [PATCH 2/6] tweak_shell_extensions.py: Disable widget if extension
006048
 can't work
006048
006048
---
006048
 gtweak/gshellwrapper.py                 |  4 ++++
006048
 gtweak/tweaks/tweak_shell_extensions.py | 11 +++++++++++
006048
 2 files changed, 15 insertions(+)
006048
006048
diff --git a/gtweak/gshellwrapper.py b/gtweak/gshellwrapper.py
006048
index d102b34..3b0cf16 100644
006048
--- a/gtweak/gshellwrapper.py
006048
+++ b/gtweak/gshellwrapper.py
006048
@@ -124,6 +124,10 @@ class GnomeShell:
006048
     def version(self):
006048
         return self._proxy.version
006048
 
006048
+    @property
006048
+    def extensions_proxy(self):
006048
+        return self._proxy.proxy_extensions
006048
+
006048
 class GnomeShell32(GnomeShell):
006048
 
006048
     EXTENSION_ENABLED_KEY = "enabled-extensions"
006048
diff --git a/gtweak/tweaks/tweak_shell_extensions.py b/gtweak/tweaks/tweak_shell_extensions.py
006048
index 80c8d3e..648a4ca 100644
006048
--- a/gtweak/tweaks/tweak_shell_extensions.py
006048
+++ b/gtweak/tweaks/tweak_shell_extensions.py
006048
@@ -67,6 +67,8 @@ class _ShellExtensionTweak(Tweak):
006048
                         warning=warning)
006048
         self.widget_for_size_group = None
006048
 
006048
+        self._shell.extensions_proxy.connect('g-signal', self._extensions_signal, uuid)
006048
+
006048
     def _on_configure_clicked(self, btn, uuid):
006048
         execute_subprocess(['gnome-shell-extension-prefs', uuid], block=False)
006048
 
006048
@@ -99,6 +101,15 @@ class _ShellExtensionTweak(Tweak):
006048
                 self.widget.set_sensitive(False)
006048
             dialog.destroy()
006048
 
006048
+    def _extensions_signal(self, proxy, sender, signal, params, uuid):
006048
+        if signal != 'ExtensionStatusChanged' or params[0] != uuid:
006048
+            return
006048
+
006048
+        state = params[1]
006048
+        self.widget.set_sensitive(state == GnomeShell.EXTENSION_STATE["ENABLED"] or
006048
+                                  state == GnomeShell.EXTENSION_STATE["DISABLED"] or
006048
+                                  state == GnomeShell.EXTENSION_STATE["INITIALIZED"])
006048
+
006048
 class _ShellExtensionInstallerTweak(Tweak):
006048
 
006048
     def __init__(self, shell, **options):
006048
-- 
006048
1.8.3.1
006048