diff --git a/shell/kbdconfig b/shell/kbdconfig index 415c69ff..073ac801 100644 --- a/shell/kbdconfig +++ b/shell/kbdconfig @@ -5,3 +5,4 @@ n=next p=prev c=close +f=fullscreen diff --git a/shell/model/homeactivity.py b/shell/model/homeactivity.py index 72b661bd..7365271b 100644 --- a/shell/model/homeactivity.py +++ b/shell/model/homeactivity.py @@ -96,14 +96,17 @@ class HomeActivity(gobject.GObject): def get_title(self): """Retrieve the application's root window's suggested title""" - return self._window.get_name() + if self._window: + return self._window.get_name() + else: + return '' - def get_icon_name(self): + def get_icon_path(self): """Retrieve the activity's icon (file) name""" if self._activity_info: return self._activity_info.icon else: - return 'image-missing' + return None def get_icon_color(self): """Retrieve the appropriate icon colour for this activity diff --git a/shell/view/home/activitiesdonut.py b/shell/view/home/activitiesdonut.py index 6ae86bff..e2e7d365 100755 --- a/shell/view/home/activitiesdonut.py +++ b/shell/view/home/activitiesdonut.py @@ -65,7 +65,6 @@ class ActivityIcon(CanvasIcon): } def __init__(self, activity): - icon_name = activity.get_icon_name() self._orig_color = activity.get_icon_color() self._icon_colors = self._compute_icon_colors() @@ -74,8 +73,14 @@ class ActivityIcon(CanvasIcon): self._level = self._level_max color = self._icon_colors[self._level] - CanvasIcon.__init__(self, file_name=icon_name, xo_color=color, - size=style.MEDIUM_ICON_SIZE, cache=True) + CanvasIcon.__init__(self, xo_color=color, cache=True, + size=style.MEDIUM_ICON_SIZE) + + icon_path = activity.get_icon_path() + if icon_path: + self.props.file_name = icon_path + else: + self.props.icon_name = 'image-missing' self._activity = activity self._pulse_id = 0 @@ -85,9 +90,9 @@ class ActivityIcon(CanvasIcon): palette = Palette(_('Starting...')) self.set_palette(palette) - activity.connect('notify::launching', self._launching_changed_cb) if activity.props.launching: self._start_pulsing() + activity.connect('notify::launching', self._launching_changed_cb) else: self._setup_palette() diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py index a7ae9050..90bf56d5 100644 --- a/sugar/activity/activity.py +++ b/sugar/activity/activity.py @@ -261,6 +261,7 @@ class Activity(Window, gtk.Container): self.connect('realize', self._realize_cb) self.connect('delete-event', self._delete_event_cb) + self.connect('window-state-event', self._window_state_event_cb) self._active = False self._activity_id = handle.activity_id @@ -344,6 +345,9 @@ class Activity(Window, gtk.Container): else: logging.debug("Unknown share scope %r" % share_scope) + def _window_state_event_cb(self, window, event): + logging.info(event.new_window_state) + def do_set_property(self, pspec, value): if pspec.name == 'active': if self._active != value: