Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBenjamin Berg <benjamin@sipsolutions.net>2008-06-20 13:17:24 (GMT)
committer Benjamin Berg <benjamin@sipsolutions.net>2008-06-20 13:17:24 (GMT)
commit25f214ed47c2b85d6b8a1ff0215796b16a99d2a4 (patch)
treeeda40cdb32623989de730d6c177bb4d3f769e417 /src
parent0f53a912018be99022cd8c1ea233bde3738eb1e4 (diff)
Add functionallity for tabbing trough activities.
To be able to raise activity windows on a delay, the homemodel needs to be set directly. It also needs to ignore window raises while the user is tabbing.
Diffstat (limited to 'src')
-rw-r--r--src/model/homemodel.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/model/homemodel.py b/src/model/homemodel.py
index a75adcf..06dffa9 100644
--- a/src/model/homemodel.py
+++ b/src/model/homemodel.py
@@ -64,6 +64,7 @@ class HomeModel(gobject.GObject):
self._activities = []
self._active_activity = None
+ self._tabbing = False
screen = wnck.screen_get_default()
screen.connect('window-opened', self._window_opened_cb)
@@ -102,6 +103,13 @@ class HomeModel(gobject.GObject):
"""Returns the activity that the user is currently working in"""
return self._active_activity
+ def tabbing_set_activity(self, activity):
+ if activity:
+ self._tabbing = True
+ self._set_active_activity(activity)
+ else:
+ self._tabbing = False
+
def _set_active_activity(self, home_activity):
if self._active_activity == home_activity:
return
@@ -185,6 +193,11 @@ class HomeModel(gobject.GObject):
logging.error("set_active() failed: %s" % err)
def _active_window_changed_cb(self, screen, previous_window=None):
+ if self._tabbing:
+ # Ignore any window changes when tabbing, as these are comming
+ # in delayed.
+ return
+
window = screen.get_active_window()
if window is None:
return