Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorReinier Heeres <rwh@rwh.(none)>2007-11-09 09:56:43 (GMT)
committer Reinier Heeres <rwh@rwh.(none)>2007-11-09 09:56:43 (GMT)
commitefeaa73779b2ddb3553c8435076753a0e286ce79 (patch)
tree1fc2a4eb4474aa6723ab1dd24b40307d9d206c56 /shell
parenta938a2ac002c0ca40d8bccfe5ec556bcdfbf4b59 (diff)
Fix alt-tab and ctrl-alt-tab behavior, #4570
Diffstat (limited to 'shell')
-rw-r--r--shell/model/homemodel.py26
1 files changed, 19 insertions, 7 deletions
diff --git a/shell/model/homemodel.py b/shell/model/homemodel.py
index 3ad8cdf..d6f6764 100644
--- a/shell/model/homemodel.py
+++ b/shell/model/homemodel.py
@@ -70,20 +70,32 @@ class HomeModel(gobject.GObject):
screen.connect('active-window-changed',
self._active_window_changed_cb)
+ def _get_activities_with_window(self):
+ ret = []
+ for i in self._activities:
+ if i.get_window() is not None:
+ ret.append(i)
+ return ret
+
def get_previous_activity(self):
- activities = self._get_started_activities()
+ activities = self._get_activities_with_window()
i = activities.index(self._pending_activity)
- if i > 0:
+ if len(activities) == 0:
+ return None
+ elif i - 1 >= 0:
return activities[i - 1]
else:
- return activities[0]
+ return activities[len(activities) - 1]
def get_next_activity(self):
- i = self._activities.index(self._pending_activity)
- if i < len(self._activities) - 1:
- return self._activities[i + 1]
+ activities = self._get_activities_with_window()
+ i = activities.index(self._pending_activity)
+ if len(activities) == 0:
+ return None
+ elif i + 1 < len(activities):
+ return activities[i + 1]
else:
- return None
+ return activities[0]
def get_pending_activity(self):
"""Returns the activity that would be seen in the Activity zoom level