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]