diff options
author | jenglish <jenglish@flightlab.com> | 2003-05-31 23:00:35 (GMT) |
---|---|---|
committer | jenglish <jenglish@flightlab.com> | 2003-05-31 23:00:35 (GMT) |
commit | 3f71bff72f6258d1b8c6719f4854c0e688e875bd (patch) | |
tree | 19df9f9962e9090bbb2a92b62a2a00ff440dd530 /unix/tkUnixRFont.c | |
parent | 3fa79ef5e10ff7ef2ac160a4c591f469ad307fcb (diff) | |
download | tk-3f71bff72f6258d1b8c6719f4854c0e688e875bd.zip tk-3f71bff72f6258d1b8c6719f4854c0e688e875bd.tar.gz tk-3f71bff72f6258d1b8c6719f4854c0e688e875bd.tar.bz2 |
* unix/tkUnixRFont.c (InitFont): Fill in TkFontAttributes from
pattern returned from GetFont (actual font) instead of the
query pattern (requested font).
Diffstat (limited to 'unix/tkUnixRFont.c')
-rw-r--r-- | unix/tkUnixRFont.c | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/unix/tkUnixRFont.c b/unix/tkUnixRFont.c index 56fbd1b..9fff6c7 100644 --- a/unix/tkUnixRFont.c +++ b/unix/tkUnixRFont.c @@ -8,7 +8,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkUnixRFont.c,v 1.2 2003/05/31 18:23:08 jenglish Exp $ + * RCS: @(#) $Id: tkUnixRFont.c,v 1.3 2003/05/31 23:00:36 jenglish Exp $ */ #include "tkUnixInt.h" @@ -136,30 +136,48 @@ InitFont (Tk_Window tkwin, FcPattern *pattern) fontPtr->faces[i].charset = 0; } + fontPtr->font.fid = XLoadFont (Tk_Display (tkwin), "fixed"); + fontPtr->display = Tk_Display (tkwin); + fontPtr->screen = Tk_ScreenNumber (tkwin); + fontPtr->ftDraw = 0; + fontPtr->drawable = 0; + fontPtr->color.color.red = 0; + fontPtr->color.color.green= 0; + fontPtr->color.color.blue = 0; + fontPtr->color.color.alpha= 0xffff; + fontPtr->color.pixel = 0xffffffff; + + ftFont = GetFont (fontPtr, 0); + /* * Build the Tk font structure */ - if (XftPatternGetString (pattern, XFT_FAMILY, 0, &family) != XftResultMatch) + if (XftPatternGetString (ftFont->pattern, XFT_FAMILY, 0, &family) + != XftResultMatch) family = "Unknown"; - if (XftPatternGetInteger (pattern, XFT_WEIGHT, 0, &weight) != XftResultMatch) + if (XftPatternGetInteger (ftFont->pattern, XFT_WEIGHT, 0, &weight) + != XftResultMatch) weight = XFT_WEIGHT_MEDIUM; if (weight <= XFT_WEIGHT_MEDIUM) weight = TK_FW_NORMAL; else weight = TK_FW_BOLD; - if (XftPatternGetInteger (pattern, XFT_SLANT, 0, &slant) != XftResultMatch) + if (XftPatternGetInteger (ftFont->pattern, XFT_SLANT, 0, &slant) + != XftResultMatch) slant = XFT_SLANT_ROMAN; if (slant <= XFT_SLANT_ROMAN) slant = TK_FS_ROMAN; else slant = TK_FS_ITALIC; - if (XftPatternGetDouble (pattern, XFT_SIZE, 0, &size) != XftResultMatch) + if (XftPatternGetDouble (ftFont->pattern, XFT_SIZE, 0, &size) + != XftResultMatch) size = 12.0; - if (XftPatternGetInteger (pattern, XFT_SPACING, 0, &spacing) != XftResultMatch) + if (XftPatternGetInteger (ftFont->pattern, XFT_SPACING, 0, &spacing) + != XftResultMatch) spacing = XFT_PROPORTIONAL; if (spacing == XFT_PROPORTIONAL) spacing = 0; @@ -168,18 +186,7 @@ InitFont (Tk_Window tkwin, FcPattern *pattern) #if DEBUG_FONTSEL printf ("family %s size %g weight %d slant %d\n", family, size, weight, slant); #endif - fontPtr->font.fid = XLoadFont (Tk_Display (tkwin), "fixed"); - - fontPtr->display = Tk_Display (tkwin); - fontPtr->screen = Tk_ScreenNumber (tkwin); - fontPtr->ftDraw = 0; - fontPtr->drawable = 0; - fontPtr->color.color.red = 0; - fontPtr->color.color.green= 0; - fontPtr->color.color.blue = 0; - fontPtr->color.color.alpha= 0xffff; - fontPtr->color.pixel = 0xffffffff; - + faPtr = &fontPtr->font.fa; faPtr->family = family; faPtr->size = (int) size; @@ -188,7 +195,6 @@ InitFont (Tk_Window tkwin, FcPattern *pattern) faPtr->underline = 0; faPtr->overstrike = 0; - ftFont = GetFont (fontPtr, 0); fmPtr = &fontPtr->font.fm; fmPtr->ascent = ftFont->ascent; fmPtr->descent = ftFont->descent; |