From d2b9c7b0f43d7fd9295d07341629ed55016d5f36 Mon Sep 17 00:00:00 2001
From: Aleksey Lim <alsroot@member.fsf.org>
Date: Mon, 28 Jun 2010 05:02:52 +0000
Subject: Listen for NameOwnerChanged DBus siginal all time for activities #2064


diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py
index 553e889..69b45e2 100644
--- a/src/jarabe/model/shell.py
+++ b/src/jarabe/model/shell.py
@@ -254,10 +254,15 @@ class Activity(gobject.GObject):
 
     def _name_owner_changed_cb(self, name, old, new):
         if name == self._get_service_name():
-            self._retrieve_service()
-            self.set_active(True)
-            self._name_owner_changed_handler.remove()
-            self._name_owner_changed_handler = None
+            if (old and len(old)) and (not new and not len(new)):
+                logging.debug('Activity %s went away', name)
+                self._name_owner_changed_handler.remove()
+                self._name_owner_changed_handler = None
+                self._service = None
+            elif (not old and not len(old)) and (new and len(new)):
+                logging.debug('Activity %s started up', name)
+                self._retrieve_service()
+                self.set_active(True)
 
     def set_active(self, state):
         """Propagate the current state to the activity object"""
-- 
1.7.0.4

