From 395472edea6fe56d48028a65176ea62dcb2ee83a Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 13 Oct 2006 09:24:07 +0000 Subject: Shutdown the factory when all activities has been destroyed. Initialize the profile. --- (limited to 'sugar') diff --git a/sugar/activity/ActivityFactory.py b/sugar/activity/ActivityFactory.py index bd2364e..4f0a4d5 100644 --- a/sugar/activity/ActivityFactory.py +++ b/sugar/activity/ActivityFactory.py @@ -4,6 +4,7 @@ import logging import dbus import dbus.service import gobject +import gtk from sugar.presence.PresenceService import PresenceService from sugar.activity import Activity @@ -21,6 +22,7 @@ class ActivityFactory(dbus.service.Object): def __init__(self, activity_type, activity_class): self._activity_type = activity_type + self._activities = [] splitted_module = activity_class.rsplit('.', 1) module_name = splitted_module[0] @@ -43,8 +45,17 @@ class ActivityFactory(dbus.service.Object): def create(self): activity = self._class() activity.set_type(self._activity_type) + + self._activities.append(activity) + activity.connect('destroy', self._activity_destroy_cb) + return activity.window.xid + def _activity_destroy_cb(self, activity): + self._activities.remove(activity) + if len(self._activities) == 0: + gtk.main_quit() + def create(activity_name): """Create a new activity from his name.""" bus = dbus.SessionBus() -- cgit v0.9.1