Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/sugar-activity
diff options
context:
space:
mode:
Diffstat (limited to 'shell/sugar-activity')
-rwxr-xr-xshell/sugar-activity17
1 files changed, 15 insertions, 2 deletions
diff --git a/shell/sugar-activity b/shell/sugar-activity
index 464eaf6..43b56dc 100755
--- a/shell/sugar-activity
+++ b/shell/sugar-activity
@@ -18,11 +18,19 @@
import sys
import os
+import gobject
from sugar.activity import ActivityFactory
from sugar import env
from sugar import util
+def _success_cb(handler, activity, loop):
+ activity.start(util.unique_id())
+ loop.quit()
+
+def _error_cb(handler, err, loop):
+ loop.quit()
+
ppath = env.get_profile_path()
bus_file = os.path.join(ppath, "session_bus_address")
f = open(bus_file, "r")
@@ -30,5 +38,10 @@ bus_name = f.read()
f.close()
os.environ['DBUS_SESSION_BUS_ADDRESS'] = bus_name
-activity = ActivityFactory.create(sys.argv[1])
-activity.start(util.unique_id())
+loop = gobject.MainLoop()
+
+handler = ActivityFactory.create(sys.argv[1])
+handler.connect('success', _success_cb, loop)
+handler.connect('error', _error_cb, loop)
+
+loop.run()