Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-05-16 19:30:49 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-05-16 19:30:49 (GMT)
commit3a1d514e9fa197e0c13c7763b5ace9fc56342a61 (patch)
treea8d9043634ea54f9fee52956a78c45e751ff78e8 /shell
parent1d31c51eccf37e081f521cc5091fea668824a883 (diff)
Save to the journal when switching to another activity.
Diffstat (limited to 'shell')
-rw-r--r--shell/model/homemodel.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/shell/model/homemodel.py b/shell/model/homemodel.py
index 99b0512..a3afdc4 100644
--- a/shell/model/homemodel.py
+++ b/shell/model/homemodel.py
@@ -101,6 +101,7 @@ class HomeModel(gobject.GObject):
self._remove_activity(window.get_xid())
if not self._activities:
self.emit('active-activity-changed', None)
+ self._notify_activity_activation(self._current_activity, None)
def _get_activity_by_xid(self, xid):
for act in self._activities.values():
@@ -108,10 +109,25 @@ class HomeModel(gobject.GObject):
return act
return None
+ def _notify_activity_activation(self, old_activity, new_activity):
+ if old_activity == new_activity:
+ return
+
+ if old_activity:
+ service = old_activity.get_service()
+ if service:
+ service.set_active(False)
+
+ if new_activity:
+ service = new_activity.get_service()
+ if service:
+ service.set_active(True)
+
def _active_window_changed_cb(self, screen):
window = screen.get_active_window()
if window == None:
self.emit('active-activity-changed', None)
+ self._notify_activity_activation(self._current_activity, None)
return
if window.get_window_type() != wnck.WINDOW_NORMAL:
return
@@ -120,11 +136,14 @@ class HomeModel(gobject.GObject):
act = self._get_activity_by_xid(window.get_xid())
if act:
if act.get_launched() == True:
+ self._notify_activity_activation(self._current_activity, act)
self._current_activity = act
else:
+ self._notify_activity_activation(self._current_activity, None)
self._current_activity = None
logging.error('Activity for window %d was not yet launched.' % xid)
else:
+ self._notify_activity_activation(self._current_activity, None)
self._current_activity = None
logging.error('Model for window %d does not exist.' % xid)