Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/sugar/activity/activity.py
diff options
context:
space:
mode:
authorMarco 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)
commit50f79e6323eac5866b1e9793baa21f5db98aba2d (patch)
tree4d0d4acad3c224a310f9dc1b0b235502ac2cd874 /src/sugar/activity/activity.py
parent5ba50d0e0f7dc2342e2eabf56b73b4869c8e6a3a (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/activity.py')
-rw-r--r--src/sugar/activity/activity.py13
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)