[hamster-applet] don't die if there is no wnck (where does it come from, i wonder)



commit 4b5e532e432679851d3b56285f9f5f8d7cd39993
Author: Toms Bauģis <toms baugis gmail com>
Date:   Mon Jan 18 15:39:09 2010 +0000

    don't die if there is no wnck (where does it come from, i wonder)

 data/preferences.ui    |    3 ++-
 hamster/applet.py      |   11 ++++++++++-
 hamster/preferences.py |    7 +++++++
 3 files changed, 19 insertions(+), 2 deletions(-)
---
diff --git a/data/preferences.ui b/data/preferences.ui
index f4058ea..21ec7d9 100644
--- a/data/preferences.ui
+++ b/data/preferences.ui
@@ -207,8 +207,9 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkFrame" id="frame4">
+                      <object class="GtkFrame" id="workspace_frame">
                         <property name="visible">True</property>
+                        <property name="no_show_all">True</property>
                         <property name="label_xalign">0</property>
                         <property name="shadow_type">none</property>
                         <child>
diff --git a/hamster/applet.py b/hamster/applet.py
index 4322636..550a9d0 100755
--- a/hamster/applet.py
+++ b/hamster/applet.py
@@ -44,13 +44,19 @@ import idle
 
 import pango
 
-import wnck
+try:
+    import wnck
+    WNCK = True
+except:
+    logging.warning("Could not import wnck - workspace tracking will be disabled")
+    WNCK = False
 
 try:
     import pynotify
     PYNOTIFY = True
     pynotify.init('Hamster Applet')
 except:
+    logging.warning("Could not import pynotify - notifications will be disabled")
     PYNOTIFY = False
 
 class PanelButton(gtk.ToggleButton):
@@ -273,6 +279,9 @@ class HamsterApplet(object):
 
 
     def init_workspace_tracking(self):
+        if not WNCK: # can't track if we don't have the trackable
+            return
+
         self.screen = wnck.screen_get_default()
         self.screen.workspace_handler = self.screen.connect("active-workspace-changed", self.on_workspace_changed)
         self.workspace_activities = {}
diff --git a/hamster/preferences.py b/hamster/preferences.py
index c0ca43c..ad61e53 100755
--- a/hamster/preferences.py
+++ b/hamster/preferences.py
@@ -179,6 +179,13 @@ class PreferencesEditor:
         except:
             self.get_widget("notification_preference_frame").hide()
 
+
+        # disable workspace tracking if wnck is not there
+        try:
+            import wnck
+        except:
+            self.get_widget("workspace_frame").hide()
+
         self._gui.connect_signals(self)
         self.window.show_all()
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]