From efeaa73779b2ddb3553c8435076753a0e286ce79 Mon Sep 17 00:00:00 2001 From: Reinier Heeres Date: Fri, 09 Nov 2007 09:56:43 +0000 Subject: Fix alt-tab and ctrl-alt-tab behavior, #4570 --- (limited to 'shell') 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 -- cgit v0.9.1