Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activities/web/webactivity.py8
-rw-r--r--sugar/activity/ActivityFactory.py9
2 files changed, 15 insertions, 2 deletions
diff --git a/activities/web/webactivity.py b/activities/web/webactivity.py
index 15f90fb..1329147 100644
--- a/activities/web/webactivity.py
+++ b/activities/web/webactivity.py
@@ -19,6 +19,7 @@ import gtk
import gtkmozembed
import logging
+import _sugar
from sugar.activity.Activity import Activity
from sugar import env
from sugar.graphics import style
@@ -92,4 +93,11 @@ class WebActivity(Activity):
def start():
gtkmozembed.set_profile_path(env.get_profile_path(), 'gecko')
+
+ gtkmozembed.push_startup()
+ _sugar.startup_browser()
+
style.load_stylesheet(web.stylesheet)
+
+def stop():
+ gtkmozembed.pop_startup()
diff --git a/sugar/activity/ActivityFactory.py b/sugar/activity/ActivityFactory.py
index 6810f2e..e20c217 100644
--- a/sugar/activity/ActivityFactory.py
+++ b/sugar/activity/ActivityFactory.py
@@ -51,7 +51,8 @@ class ActivityFactory(dbus.service.Object):
if hasattr(module, 'start'):
module.start()
- self._class = getattr(module, class_name)
+ self._module = module
+ self._constructor = getattr(module, class_name)
bus = dbus.SessionBus()
factory = _get_factory(activity_type)
@@ -60,7 +61,7 @@ class ActivityFactory(dbus.service.Object):
@dbus.service.method("com.redhat.Sugar.ActivityFactory")
def create(self):
- activity = self._class()
+ activity = self._constructor()
activity.set_type(self._activity_type)
self._activities.append(activity)
@@ -70,6 +71,10 @@ class ActivityFactory(dbus.service.Object):
def _activity_destroy_cb(self, activity):
self._activities.remove(activity)
+
+ if hasattr(self._module, 'stop'):
+ self._module.stop()
+
if len(self._activities) == 0:
gtk.main_quit()