[Sugar-devel] [PATCH v2 sugar] Frame: show application-set icon for non-Sugar windows

Simon Schampijer simon at schampijer.de
Thu Sep 23 09:47:09 EDT 2010

On 09/20/2010 07:32 PM, Sascha Silbe wrote:
> Excerpts from James Cameron's message of Mon Sep 20 02:48:08 +0200 2010:
>>> +    def _icon_changed_cb(self, window):
>>> +        gobject.idle_add(self._update_icon, window)
>> I'm puzzled.  Why defer the update to an idle task?  If it is because of
>> a race, I'm worried this won't fix it.
> I don't remember why I did it that way originally. Maybe it was from
> when I triggered it (only) from __init__() instead of listening to the
> signal.
> It works fine without the idle task on both XO-1.5 and regular PC, so
> let's just remove it.
>>> +    def _update_icon(self, window):
>>> +        logging.debug('_update_icon: start')
>>> +        pixbuf = window.get_icon()
>>> +        if pixbuf is None:
>>> +            return
>> When a function is an idle task, the return value has significance, so
>> I'm not sure if a bare return is the right thing here.
> While it does work (bare return is actually return None which gets
> evaluated to False in boolean contexts), it would be bad style.
> But removing the idle task already takes care of that. :)
>>> +        self._icon.props.file = util.TempFilePath(path)
>>> +        logging.debug('_update_icon: updated icon')
>> When are these files cleaned up?
> sugar.util.TempFilePath is a wrapper around a file name that removes
> the file when the name gets garbage-collected. So the file should
> disappear on the first garbage collection run after the window was
> closed or a new icon assigned.
> Sascha

Can we get an updated patch for that one? Looks quite good when 
addressing James comments. (I would remove the loggings).


More information about the Sugar-devel mailing list