[sugar] [PATCH] Reset activity icons when clicked/launched (#7273, #7274)

Tomeu Vizoso tomeu at tomeuvizoso.net
Sat Jun 21 04:56:39 EDT 2008


On Sat, Jun 21, 2008 at 1:14 AM, Eben Eliason <eben.eliason at gmail.com> wrote:
> The act of clicking on an activity icon in Home to launch it
> switches the view to the launcher, eliminating the expected
> hovering-changed event (leave).  This commit hides the palette
> instantly (it used to remain visible in the launcher) and
> un-colors the icon (which used to remain colored when returning
> to Home).
>
> ---
>  src/view/home/activitieslist.py |   11 ++++++++++-
>  src/view/home/favoritesview.py  |    8 +++++++-
>  2 files changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/src/view/home/activitieslist.py b/src/view/home/activitieslist.py
> index 5dab09d..8086b7b 100644
> --- a/src/view/home/activitieslist.py
> +++ b/src/view/home/activitieslist.py
> @@ -110,6 +110,9 @@ class ActivityIcon(CanvasIcon):
>                             fill_color=style.COLOR_TRANSPARENT.get_svg())
>         self._activity_info = activity_info
>         self.connect('hovering-changed', self.__hovering_changed_event_cb)
> +        self.connect('button-release-event', self.__button_release_event_cb)
> +
> +        self._palette = None

No need to keep track of the palette, we can access it with
self.palette (is a property of CanvasIcon).

>     def __hovering_changed_event_cb(self, icon, event):
>         if event:
> @@ -118,8 +121,14 @@ class ActivityIcon(CanvasIcon):
>             self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
>             self.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
>
> +    def __button_release_event_cb(self, icon, event):
> +        self._palette.popdown(immediate=True)
> +        self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
> +        self.props.fill_color = style.COLOR_TRANSPARENT.get_svg()

Perhaps we shouldn't duplicate this set of colors, maybe a
_restore_colors() method could be created?

> +
>     def create_palette(self):
> -        return ActivityPalette(self._activity_info)
> +        self._palette = ActivityPalette(self._activity_info)
> +        return self._palette
>
>  class ActivityEntry(hippo.CanvasBox, hippo.CanvasItem):
>     __gtype_name__ = 'SugarActivityEntry'
> diff --git a/src/view/home/favoritesview.py b/src/view/home/favoritesview.py
> index a6e2268..6e56db5 100644
> --- a/src/view/home/favoritesview.py
> +++ b/src/view/home/favoritesview.py
> @@ -274,8 +274,11 @@ class ActivityIcon(CanvasIcon):
>         self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
>         self.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
>
> +        self._palette = None
> +
>     def create_palette(self):
> -        return ActivityPalette(self._activity_info)
> +        self._palette = ActivityPalette(self._activity_info)
> +        return self._palette
>
>     def __hovering_changed_event_cb(self, icon, event):
>         if event:
> @@ -285,6 +288,9 @@ class ActivityIcon(CanvasIcon):
>             self.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
>
>     def __button_release_event_cb(self, icon, event):
> +        self._palette.popdown(immediate=True)
> +        self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
> +        self.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
>         view.Shell.get_instance().start_activity(self._activity_info.bundle_id)
>
>     def get_bundle_id(self):

Same for favorites as for the list.

Thanks,

Tomeu


More information about the Sugar mailing list