diff options
author | Owen Taylor <otaylor@redhat.com> | 2004-12-16 03:24:07 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2004-12-16 03:24:07 +0000 |
commit | 7be7952f2fb1d34963a041fc9bc4d4841d8de74a (patch) | |
tree | d6417d999b1f4a7a38290eb94004934fe57d1163 /pango/pangoxft-font.c | |
parent | da045342eccab09d3d6be33b1b65ebeb5dc2b2f0 (diff) | |
download | pango-7be7952f2fb1d34963a041fc9bc4d4841d8de74a.tar.gz |
Add pixel sizes for fonts (#119081, patch from Chris Lahey)
Wed Dec 15 22:09:42 2004 Owen Taylor <otaylor@redhat.com>
Add pixel sizes for fonts (#119081, patch from Chris Lahey)
* pango/fonts.c pango/pango-font.h:
Add pango_font_description_set_absolute_size(),
pango_font_description_get_size_is_absolute()
* pango/pango-attributes.[ch]: Add pango_attr_size_new_absolute(),
change PANGO_ATTR_SIZE from PangoAttrInt to PangoAttrSize
(preserves compat because first component is identical)
* pango/pangowin32-fontmap.c (pango_win32_font_map_load_font):
For absolute sizes, convert pixels to points, before
calling pango_win32_font_new().
* pango/pangofc-fontmap.c pango/pangoft2.c pango/pangoxft-font.c:
Handle absolute sizes.
Diffstat (limited to 'pango/pangoxft-font.c')
-rw-r--r-- | pango/pangoxft-font.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/pango/pangoxft-font.c b/pango/pangoxft-font.c index 0080ba81..632ec433 100644 --- a/pango/pangoxft-font.c +++ b/pango/pangoxft-font.c @@ -128,13 +128,19 @@ _pango_xft_font_get_mini_font (PangoXftFont *xfont) int width = 0, height = 0; XGlyphInfo extents; XftFont *mini_xft; + int new_size; _pango_xft_font_map_get_info (fcfont->fontmap, &display, NULL); pango_font_description_set_family_static (desc, "monospace"); - pango_font_description_set_size (desc, - 0.5 * pango_font_description_get_size (fcfont->description)); + + new_size = pango_font_description_get_size (fcfont->description) / 2; + if (pango_font_description_get_size_is_absolute (fcfont->description)) + pango_font_description_set_absolute_size (desc, new_size); + else + pango_font_description_set_size (desc, new_size); + xfont->mini_font = pango_font_map_load_font (fcfont->fontmap, NULL, desc); pango_font_description_free (desc); @@ -340,12 +346,17 @@ load_fallback_font (PangoXftFont *xfont) Display *display; int screen; XftFont *xft_font; + gboolean size_is_absolute; + double size; _pango_xft_font_map_get_info (fcfont->fontmap, &display, &screen); + + size_is_absolute = pango_font_description_get_size_is_absolute (fcfont->description); + size = (double)pango_font_description_get_size (fcfont->description) / PANGO_SCALE; xft_font = XftFontOpen (display, screen, FC_FAMILY, FcTypeString, "sans", - FC_SIZE, FcTypeDouble, (double)pango_font_description_get_size (fcfont->description)/PANGO_SCALE, + size_is_absolute ? FC_PIXEL_SIZE : FC_SIZE, FcTypeDouble, size, NULL); if (!xft_font) |