diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-03-15 16:10:27 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-03-15 16:10:27 (GMT) |
commit | 9f5d642591ae21ce328b1ab322795352e0d85aaa (patch) | |
tree | 2e8b3f14f38adc551b969a617e6f36580b346bfb | |
parent | fbeaf5fb663b7a23da1cf105a76d346ca66f6843 (diff) | |
parent | 0fe529b78aeaeeefeb179ab70833119bfabd9d12 (diff) |
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
-rw-r--r-- | shell/model/homemodel.py | 2 | ||||
-rw-r--r-- | shell/view/Shell.py | 12 | ||||
-rw-r--r-- | sugar/graphics/snowflakebox.py | 4 |
3 files changed, 15 insertions, 3 deletions
diff --git a/shell/model/homemodel.py b/shell/model/homemodel.py index 9d7d68c..598562b 100644 --- a/shell/model/homemodel.py +++ b/shell/model/homemodel.py @@ -110,7 +110,7 @@ class HomeModel(gobject.GObject): self._current_activity = act else: self._current_activity = None - logging.error('Actiivty for window %d was not yet launched.' % xid) + logging.error('Activity for window %d was not yet launched.' % xid) else: self._current_activity = None logging.error('Model for window %d does not exist.' % xid) diff --git a/shell/view/Shell.py b/shell/view/Shell.py index 3f0ef8f..b8678dd 100644 --- a/shell/view/Shell.py +++ b/shell/view/Shell.py @@ -14,6 +14,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +from sets import Set import logging import gobject @@ -32,6 +33,7 @@ class Shell(gobject.GObject): def __init__(self, model): gobject.GObject.__init__(self) + self._activities_starting = Set() self._model = model self._hosts = {} self._screen = wnck.screen_get_default() @@ -60,8 +62,12 @@ class Shell(gobject.GObject): def _activity_added_cb(self, home_model, home_activity): activity_host = ActivityHost(home_activity) self._hosts[activity_host.get_xid()] = activity_host + if home_activity.get_type() in self._activities_starting: + self._activities_starting.remove(home_activity.get_type()) def _activity_removed_cb(self, home_model, home_activity): + if home_activity.get_type() in self._activities_starting: + self._activities_starting.remove(home_activity.get_type()) if not home_activity.get_launched(): return xid = home_activity.get_xid() @@ -127,8 +133,14 @@ class Shell(gobject.GObject): home_model.notify_activity_launch_failed(handler.get_activity_id()) def start_activity(self, activity_type): + if activity_type in self._activities_starting: + logging.debug("This activity is still launching.") + return + logging.debug('Shell.start_activity') + self._activities_starting.add(activity_type) + handler = activityfactory.create(activity_type) home_model = self._model.get_home() diff --git a/sugar/graphics/snowflakebox.py b/sugar/graphics/snowflakebox.py index 540b8b0..dfef45b 100644 --- a/sugar/graphics/snowflakebox.py +++ b/sugar/graphics/snowflakebox.py @@ -73,14 +73,14 @@ class SnowflakeBox(hippo.CanvasBox, hippo.CanvasItem): max_child_size = 0 for child in self.get_children(): [min_w, natural_w] = child.get_width_request() - [min_h, natural_h] = child.get_height_request(width) + [min_h, natural_h] = child.get_height_request(min_w) max_child_size = max (max_child_size, min_w) max_child_size = max (max_child_size, min_h) width = self._get_radius() * 2 + \ max_child_size + _FLAKE_DISTANCE * 2 - return [width, width] + return (width, width) def do_allocate(self, width, height, origin_changed): hippo.CanvasBox.do_allocate(self, width, height, origin_changed) |