diff options
author | Benjamin Berg <benjamin@sipsolutions.net> | 2008-06-20 13:17:24 (GMT) |
---|---|---|
committer | Benjamin Berg <benjamin@sipsolutions.net> | 2008-06-20 13:17:24 (GMT) |
commit | 25f214ed47c2b85d6b8a1ff0215796b16a99d2a4 (patch) | |
tree | eda40cdb32623989de730d6c177bb4d3f769e417 /src | |
parent | 0f53a912018be99022cd8c1ea233bde3738eb1e4 (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.py | 13 |
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 |