Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2010-06-28 05:02:52 (GMT)
committer Sascha Silbe <sascha-pgp@silbe.org>2010-11-01 16:53:51 (GMT)
commitb9d3aba3e744fd1753986c58b3d5bb6d75d03106 (patch)
treefd92ff54e54e9017a7a8ee26005dc9c9178bc610
parentafb65e6b7ec52fcb8090dc812f952ef1e4601d10 (diff)
Listen for NameOwnerChanged DBus siginal all time for activities #2064
-rw-r--r--src/jarabe/model/shell.py13
1 files changed, 9 insertions, 4 deletions
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"""