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:
Diffstat (limited to 'src/sugar/activity/activity.py')
-rw-r--r--src/sugar/activity/activity.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py
index d4892d0..c91a023 100644
--- a/src/sugar/activity/activity.py
+++ b/src/sugar/activity/activity.py
@@ -393,6 +393,9 @@ class Activity(Window, gtk.Container):
"""Returns the bundle_id from the activity.info file"""
return os.environ['SUGAR_BUNDLE_ID']
+ def get_canvas(self):
+ return Window.get_canvas(self)
+
def set_canvas(self, canvas):
"""Sets the 'work area' of your activity with the canvas of your
choice.
@@ -403,6 +406,8 @@ class Activity(Window, gtk.Container):
if not self._read_file_called:
canvas.connect('map', self.__canvas_map_cb)
+ canvas = property(get_canvas, set_canvas)
+
def __screen_size_changed_cb(self, screen):
self._adapt_window_to_screen()
@@ -517,7 +522,7 @@ class Activity(Window, gtk.Container):
if self._closing:
self._show_keep_failed_dialog()
self._closing = False
- logging.debug('Error saving activity object to datastore: %s', err)
+ raise RuntimeError('Error saving activity object to datastore: %s', err)
def _cleanup_jobject(self):
if self._jobject:
@@ -769,7 +774,7 @@ class Activity(Window, gtk.Container):
try:
self.save()
except:
- logging.info(traceback.format_exc())
+ logging.exception('Error saving activity object to datastore')
self._show_keep_failed_dialog()
return False
@@ -800,7 +805,8 @@ class Activity(Window, gtk.Container):
if not self.can_close():
return
- if skip_save or self.metadata.get('title_set_by_user', '0') == '1':
+ if skip_save or self._jobject is None or \
+ self.metadata.get('title_set_by_user', '0') == '1':
if not self._closing:
if not self._prepare_close(skip_save):
return