diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2008-06-06 17:13:10 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2008-06-06 17:13:10 (GMT) |
commit | 50f79e6323eac5866b1e9793baa21f5db98aba2d (patch) | |
tree | 4d0d4acad3c224a310f9dc1b0b235502ac2cd874 /src/sugar/activity | |
parent | 5ba50d0e0f7dc2342e2eabf56b73b4869c8e6a3a (diff) |
First go at session management. Not asking review since
it's a bunch of ugly C code imported from gnome-session.
Will clean it up a bit but I don't plan to make it too shiny :)
Diffstat (limited to 'src/sugar/activity')
-rw-r--r-- | src/sugar/activity/activity.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py index 6204354..3d3b995 100644 --- a/src/sugar/activity/activity.py +++ b/src/sugar/activity/activity.py @@ -69,6 +69,7 @@ from sugar.graphics.toolcombobox import ToolComboBox from sugar.graphics.alert import Alert from sugar.graphics.icon import Icon from sugar.datastore import datastore +from sugar.session import XSMPClient from sugar import wm from sugar import profile from sugar import _sugarext @@ -435,6 +436,11 @@ class Activity(Window, gtk.Container): self._max_participants = 0 self._invites_queue = [] + self._xsmp_client = XSMPClient() + self._xsmp_client.connect('quit-requested', self.__sm_quit_requested_cb) + self._xsmp_client.connect('quit', self.__sm_quit_cb) + self._xsmp_client.startup() + accel_group = gtk.AccelGroup() self.set_data('sugar-accel-group', accel_group) self.add_accel_group(accel_group) @@ -556,6 +562,13 @@ class Activity(Window, gtk.Container): Window.set_canvas(self, canvas) canvas.connect('map', self.__canvas_map_cb) + def __sm_quit_requested_cb(self, client): + client.will_quit(True) + + def __sm_quit_cb(self, client): + print 'sm quit' + self.close(force=True) + def __canvas_map_cb(self, canvas): if self._jobject and self._jobject.file_path: self.read_file(self._jobject.file_path) |