Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-03-27 11:26:57 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-03-27 11:26:57 (GMT)
commitf0a859907dae18f161e7719fbe01e377268aecf6 (patch)
treebba557ea1e5c5dd5071b489a1bb9f3f0cdd048dd
parentff514ef8dd1c50843482512eea9383ad395ec2eb (diff)
Only call read_file once on activity startup #428
-rw-r--r--src/sugar/activity/activity.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py
index 702bd7c..9809928 100644
--- a/src/sugar/activity/activity.py
+++ b/src/sugar/activity/activity.py
@@ -483,6 +483,7 @@ class Activity(Window, gtk.Container):
self._max_participants = 0
self._invites_queue = []
self._jobject = None
+ self._read_file_called = False
self._session = _get_session()
self._session.register(self)
@@ -603,7 +604,8 @@ class Activity(Window, gtk.Container):
One commonly used canvas is gtk.ScrolledWindow
"""
Window.set_canvas(self, canvas)
- canvas.connect('map', self.__canvas_map_cb)
+ if not self._read_file_called:
+ canvas.connect('map', self.__canvas_map_cb)
def __session_quit_requested_cb(self, session):
self._quit_requested = True
@@ -617,8 +619,12 @@ class Activity(Window, gtk.Container):
self._complete_close()
def __canvas_map_cb(self, canvas):
- if self._jobject and self._jobject.file_path:
+ logging.debug('Activity.__canvas_map_cb')
+ if self._jobject and self._jobject.file_path and \
+ not self._read_file_called:
self.read_file(self._jobject.file_path)
+ self._read_file_called = True
+ canvas.disconnect_by_func(self.__canvas_map_cb)
def __jobject_create_cb(self):
pass