Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-10-15 21:47:02 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-10-15 21:47:02 (GMT)
commitc975b11606400043a49cae8a90bbd5ed044e9233 (patch)
treea06b8e30b161e2195ff353de2e5c4a9393e0d983 /sugar
parentfc98263bb3b4f98468030016a1a8f8ec2143b7e8 (diff)
Try to cleanup the activity destruction mess.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/activity/activity.py44
1 files changed, 15 insertions, 29 deletions
diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py
index e659be0..c581c15 100644
--- a/sugar/activity/activity.py
+++ b/sugar/activity/activity.py
@@ -130,7 +130,6 @@ class ActivityToolbar(gtk.Toolbar):
def _stop_clicked_cb(self, button):
self._activity.close()
- self._activity.destroy()
def _jobject_updated_cb(self, jobject):
self.title.set_text(jobject['title'])
@@ -260,8 +259,7 @@ class Activity(Window, gtk.Container):
util.set_proc_title(proc_title)
self.connect('realize', self._realize_cb)
- self.connect('delete-event', self._delete_event_cb)
- self.connect('window-state-event', self._window_state_event_cb)
+ self.connect('delete-event', self.__delete_event_cb)
self._active = False
self._activity_id = handle.activity_id
@@ -269,10 +267,10 @@ class Activity(Window, gtk.Container):
self._shared_activity = None
self._share_id = None
self._join_id = None
- self._can_close = True
self._preview = None
self._updating_jobject = False
self._closing = False
+ self._deleting = False
self._max_participants = 0
self._invites_queue = []
@@ -345,9 +343,6 @@ class Activity(Window, gtk.Container):
else:
logging.debug("Unknown share scope %r" % share_scope)
- def _window_state_event_cb(self, window, event):
- logging.info(event.new_window_state)
-
def do_set_property(self, pspec, value):
if pspec.name == 'active':
if self._active != value:
@@ -597,35 +592,26 @@ class Activity(Window, gtk.Container):
self._internal_share_cb)
self._pservice.share_activity(self, private=private)
- def _realize_cb(self, window):
- wm.set_bundle_id(window.window, self.get_bundle_id())
- wm.set_activity_id(window.window, self._activity_id)
-
- def _delete_event_cb(self, window, event):
- if self._can_close:
- self.close()
- return False
- else:
- return True
-
def close(self):
- self._closing = True
+ self._preview = self._get_preview()
+
+ self.save()
- if self._bus:
- del self._bus
- self._bus = None
if self._shared_activity:
self._shared_activity.leave()
- self._preview = self._get_preview()
- self.save()
-
- def destroy(self):
if self._updating_jobject:
- # Delay destruction
- self.hide()
+ self._closing = True
else:
- Window.destroy(self)
+ self.destroy()
+
+ def _realize_cb(self, window):
+ wm.set_bundle_id(window.window, self.get_bundle_id())
+ wm.set_activity_id(window.window, self._activity_id)
+
+ def __delete_event_cb(self, widget, event):
+ self.close()
+ return True
def get_metadata(self):
if self._jobject: