Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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