Devs,

The previous patches were incomplete, as they only screenshot saving via
the close and keep click callbacks.  If the user initated a close or
save via the keyboard, the screenshots would not be saved.  The attached
patches should resolve this issue.  The modified patch is to activity.py
in sugar-toolkit.

Erik
diff --git a/src/view/Shell.py b/src/view/Shell.py
index a53ee93..b6ffbfe 100644
--- a/src/view/Shell.py
+++ b/src/view/Shell.py
@@ -190,8 +190,6 @@ class Shell(gobject.GObject):
         if level == self._model.get_zoom_level():
             return
 
-        self.take_activity_screenshot()
-
         if level == shellmodel.ShellModel.ZOOM_ACTIVITY:
             host = self.get_current_activity()
             if host is not None:
@@ -208,7 +206,6 @@ class Shell(gobject.GObject):
         home_model = self._model.get_home()
         previous_activity = home_model.get_previous_activity()
         if previous_activity:
-            self.take_activity_screenshot()
             previous_activity.get_window().activate(
 						gtk.get_current_event_time())
 
@@ -216,7 +213,6 @@ class Shell(gobject.GObject):
         home_model = self._model.get_home()
         next_activity = home_model.get_next_activity()
         if next_activity:
-            self.take_activity_screenshot()
             next_activity.get_window().activate(gtk.get_current_event_time())
 
     def close_current_activity(self):
@@ -228,7 +224,6 @@ class Shell(gobject.GObject):
         if active_activity.is_journal():
             return
 
-        self.take_activity_screenshot()
         self.get_current_activity().close()
 
     def get_current_activity(self):
diff --git a/src/view/frame/frame.py b/src/view/frame/frame.py
index 6009e7f..c3f0de9 100644
--- a/src/view/frame/frame.py
+++ b/src/view/frame/frame.py
@@ -146,8 +146,6 @@ class Frame(object):
         if self._animator:
             self._animator.stop()
 
-        view.Shell.get_instance().take_activity_screenshot()
-
         self.mode = mode
 
         self._animator = animator.Animator(0.5)
diff --git a/src/view/tabbinghandler.py b/src/view/tabbinghandler.py
index 03ce275..e3153b0 100644
--- a/src/view/tabbinghandler.py
+++ b/src/view/tabbinghandler.py
@@ -58,7 +58,6 @@ class TabbingHandler(object):
                 self._tabbing = False
             else:
                 shell = view.Shell.get_instance()
-                shell.take_activity_screenshot()
                 
                 self._frame.show(self._frame.MODE_NON_INTERACTIVE)
 
diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py
index 73eeea7..0746135 100644
--- a/src/sugar/activity/activity.py
+++ b/src/sugar/activity/activity.py
@@ -174,7 +174,6 @@ class ActivityToolbar(gtk.Toolbar):
         self._activity.copy()
 
     def __stop_clicked_cb(self, button):
-        self._activity.take_screenshot()
         self._activity.close()
 
     def __jobject_updated_cb(self, jobject):
@@ -812,6 +811,7 @@ class Activity(Window, gtk.Container):
         Activities should not override this method. Instead, like save() do any
         copy work that needs to be done in write_file()
         """
+        self._activity.take_screenshot()
         logging.debug('Activity.copy: %r' % self._jobject.object_id)
         self.save()
         self._jobject.object_id = None
@@ -969,6 +969,8 @@ class Activity(Window, gtk.Container):
         to control wether it can close, it should override can_close().
         """
 
+        self._activity.take_screenshot()
+
         if not self.can_close():
             return
 
_______________________________________________
Sugar mailing list
[email protected]
http://lists.laptop.org/listinfo/sugar

Reply via email to