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:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-03-27 11:26:57 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-03-27 11:32:04 (GMT)
commitc5e5d3aeb7c3f708125a686b4fabde35e9e2e7b3 (patch)
treea2fd0eace3e62ff7ddc96341e41ff32900c1973d /src/sugar/activity/activity.py
parent9ef619a63a362d4ac65d7d94cc47690db347349a (diff)
Only call read_file once on activity startup #428
Diffstat (limited to 'src/sugar/activity/activity.py')
-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