diff options
author | Aleksey 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) |
commit | b9d3aba3e744fd1753986c58b3d5bb6d75d03106 (patch) | |
tree | fd92ff54e54e9017a7a8ee26005dc9c9178bc610 | |
parent | afb65e6b7ec52fcb8090dc812f952ef1e4601d10 (diff) |
Listen for NameOwnerChanged DBus siginal all time for activities #2064
-rw-r--r-- | src/jarabe/model/shell.py | 13 |
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""" |