[hamster-applet] dropped the timeout as checking previous workspace is a cleaner work around the wnck's hiccup
- From: Toms Baugis <tbaugis src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [hamster-applet] dropped the timeout as checking previous workspace is a cleaner work around the wnck's hiccup
- Date: Sun, 17 Jan 2010 18:05:04 +0000 (UTC)
commit 2f3fe29424cb689de2bf410b185dcfa52dd39f68
Author: Toms Bauģis <toms baugis gmail com>
Date: Sun Jan 17 18:04:43 2010 +0000
dropped the timeout as checking previous workspace is a cleaner work around the wnck's hiccup
hamster/applet.py | 24 +++++++++---------------
1 files changed, 9 insertions(+), 15 deletions(-)
---
diff --git a/hamster/applet.py b/hamster/applet.py
index fc77ad5..8768e7b 100755
--- a/hamster/applet.py
+++ b/hamster/applet.py
@@ -261,27 +261,15 @@ class HamsterApplet(object):
self.screen = None
if self.workspace_tracking:
- gobject.timeout_add(50, self.init_workspace_tracking)
-
+ self.init_workspace_tracking()
self._gui.connect_signals(self)
def init_workspace_tracking(self):
- """call this using timeout_add, because it takes a little while until
- wnck is ready (flushing events will cause hang when performed while
- mainloop is running)"""
- if not self.screen:
- self.screen = wnck.screen_get_default()
-
- active_workspace = self.screen.get_active_workspace()
- if not active_workspace:
- return True # come back again
-
+ self.screen = wnck.screen_get_default()
self.screen.workspace_handler = self.screen.connect("active-workspace-changed", self.on_workspace_changed)
self.workspace_activities = {}
- return False # done
-
"""UI functions"""
def refresh_hamster(self):
@@ -582,6 +570,12 @@ class HamsterApplet(object):
end_time = self.dbusIdleListener.getIdleFrom())
def on_workspace_changed(self, screen, previous_workspace):
+ if not previous_workspace:
+ # wnck has a slight hiccup on init and after that calls
+ # workspace changed event with blank previous state that should be
+ # ignored
+ return
+
if not self.workspace_tracking or self.workspace_tracking not in (1,2):
return # default to not doing anything
@@ -627,7 +621,7 @@ class HamsterApplet(object):
elif key == "workspace_tracking":
self.workspace_tracking = value
if self.workspace_tracking and not self.screen:
- gobject.timeout_add(50, self.init_workspace_tracking)
+ self.init_workspace_tracking()
elif not self.workspace_tracking:
if self.screen:
self.screen.disconnect(self.screen.workspace_handler)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]