Re: style->font
- From: Tim Janik <timj gtk org>
- To: Owen Taylor <otaylor redhat com>
- Cc: gtk-devel-list gnome org, gnome-hackers gnome org
- Subject: Re: style->font
- Date: Thu, 13 Sep 2001 23:17:33 +0200 (CEST)
On 7 Sep 2001, Owen Taylor wrote:
> Possible fixes:
> 
>  * Remove style->font entirely. Tempting, but I think it would
>    increase the burden of porting existing code to GTK+-2.0
>    substantially.
i think we at least need to rename that field anyways, so code
portions that do the current style->font hackery get cought.
basically, i think that API which requires users to modify
structure components is broken in the first place, and we should
get rid of any of those. style->font is a good example why still
supporting structure poking is a maintenance nightmare.
>  * Rename style->font to something private, and accessors
>    gtk_style_get_font(), gtk_style_set_font(). This causes
>    a lot of breakage, but it's breakage that can be fixed
>    very mechanically. And we get the advantages:
>    
>     - We can emulate the current non-multihead safe behavior
> 
>     - We avoid loading style->font if nobody uses it; currently
>       we always load it even if there is no legacy code accessing
>       the style at all.
> 
>     - We can cleanly mark gtk_style_get/set_font as deprecated
>       and not-multihead safe, something we can't do with
>       direct style->font access.
can you extend on why gtk_style_get/set_font will have to be deprecated
once we have multihead? since a realized widget can't move between
displays, using gtk_style_set_font() on an _attached_ (realized) style
should still be ok.
>  * Try to fix the two problems piecemeal:
> 
>     - Always keep widget->style realized for the colormap for the
>       widget. When the colormap for the widget changes, unrealize
>       and realize the widget again. 
>    
>     - we keep a separately refenced copy of widget->font in
>       style->internal_font and only NULL out style->font when
>       unrealizing a style if style->font == style->internal_font.
>  
>    Unfortunately, this is expensive and still leaves problems; 
>    in particular, making gtk_style_copy() produce a realized style 
>    doesn't work since every realized style must have an "owner" for properly
>    maintaining style->attach_count. But it's reasonable to:
> Of these options, I slightly favor the the second, but I'm not very
> happy about the amount of breakage involved. I'd appreciate any
> feedback people have on this subject and especially better ideas about
> how to handle this.
a quick find+grep on my current GNOME CVS tree indicates that the
amount of breakage here is definitely moderately handable.
fixing anything in gimp and gnome-libs should be none issues as they
should be ported to 2.0 as cleanly as possible anyways, that leaves:
- 2 places in evolution, which you identified as buggy anyways
- 2 places in balsa
- 2 place in gnome-applets (battery, you identified that as well)
- 1 place in gnome-perl
- 2 places in gnome-python
and a couple similar places. overall, the impacts of renaming/getting rid of
style->font is about 1-2 changes for each project maintainer, which i think
is definitely bearable and has far lesser impact than other 2.0 porting
changes they need to worry about.
so basically, take my vote for breaking style->font in one way or another,
i.e. rename or removal. your third option doesn't sound so appealing to
me either, esp. as it still leaves us with some problems.
> 
> Thanks,
>                                         Owen
> 
---
ciaoTJ
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]