Fix regression for GTK2 activities caused by 2f2b2d2

The issue was caused by importing from activityfactory which caused GObject to be imported. This conflicts with GTK2. (Reported by James Cameron)
The idea is that we should create the sugar profile's activity root if it doesn't exist yet, when running outside Sugar.
This commit is contained in:
Sebastian Silva 2016-05-16 23:36:01 -05:00
parent ea3b673f51
commit c5fa4dfd59

View File

@ -35,11 +35,12 @@ DBusGMainLoop(set_as_default=True)
from sugar3.activity import activityhandle from sugar3.activity import activityhandle
from sugar3 import config from sugar3 import config
from sugar3.bundle.activitybundle import ActivityBundle from sugar3.bundle.activitybundle import ActivityBundle
from sugar3.activity.activityfactory import get_environment
from sugar3 import logger from sugar3 import logger
from sugar3.bundle.bundle import MalformedBundleException from sugar3.bundle.bundle import MalformedBundleException
from distutils.dir_util import mkpath
def create_activity_instance(constructor, handle): def create_activity_instance(constructor, handle):
activity = constructor(handle) activity = constructor(handle)
activity.show() activity.show()
@ -124,7 +125,22 @@ def main():
activity_class = bundle.get_command().split(" ")[1] activity_class = bundle.get_command().split(" ")[1]
if 'SUGAR_VERSION' not in os.environ: if 'SUGAR_VERSION' not in os.environ:
environ = get_environment(bundle) profile_id = os.environ.get('SUGAR_PROFILE', 'default')
home_dir = os.environ.get('SUGAR_HOME', os.path.expanduser('~/.sugar'))
base = os.path.join(home_dir, profile_id)
activity_root = os.path.join(base, bundle.get_bundle_id())
instance_dir = os.path.join(activity_root, 'instance')
mkpath(instance_dir)
data_dir = os.path.join(activity_root, 'data')
mkpath(data_dir)
tmp_dir = os.path.join(activity_root, 'tmp')
mkpath(tmp_dir)
os.environ['SUGAR_ACTIVITY_ROOT'] = activity_root
os.environ['SUGAR_BUNDLE_PATH'] = bundle.get_path()
os.environ['SUGAR_BUNDLE_ID'] = bundle.get_bundle_id() os.environ['SUGAR_BUNDLE_ID'] = bundle.get_bundle_id()
os.environ['SUGAR_BUNDLE_NAME'] = bundle.get_name() os.environ['SUGAR_BUNDLE_NAME'] = bundle.get_name()