diff options
author | Tor Lillqvist <tml@iki.fi> | 2002-01-01 23:08:39 +0000 |
---|---|---|
committer | Tor Lillqvist <tml@src.gnome.org> | 2002-01-01 23:08:39 +0000 |
commit | 2210a8aa8286f7af2e1a17354e9b027a1f669867 (patch) | |
tree | 269a26077cc34747881cae90c50966b4090e2a38 /pango | |
parent | f7ae83fefadb78c237691112f217516bbf4e3eb5 (diff) | |
download | pango-2210a8aa8286f7af2e1a17354e9b027a1f669867.tar.gz |
Set lfCharSet to DEFAULT_CHARSET always. Conditional debugging output with
2002-01-02 Tor Lillqvist <tml@iki.fi>
* pango/pangowin32-fontcache.c (pango_win32_font_cache_load): Set
lfCharSet to DEFAULT_CHARSET always. Conditional debugging output
with the PING() macro.
* pango/pangowin32-fontmap.c: Make the size_infos hash table
actually work like it is suppposed to, not that I know if it
matters. I think that it's useless to store all the different
charset views of the same actual ttf font in the list. Will have
to do more testing.
(logfont_nosize_hash): Lowercase face name before calculating
hash.
(logfont_nosize_equal): Compare face names ignoring case.
Diffstat (limited to 'pango')
-rw-r--r-- | pango/pangowin32-fontcache.c | 34 | ||||
-rw-r--r-- | pango/pangowin32-fontmap.c | 12 |
2 files changed, 24 insertions, 22 deletions
diff --git a/pango/pangowin32-fontcache.c b/pango/pangowin32-fontcache.c index 613c3806..2986a33b 100644 --- a/pango/pangowin32-fontcache.c +++ b/pango/pangowin32-fontcache.c @@ -184,31 +184,31 @@ pango_win32_font_cache_load (PangoWin32FontCache *cache, } else { - BOOL aa = TRUE; /* turn on anti-aliasing */ + BOOL aa; lf = *lfp; SystemParametersInfo (SPI_GETFONTSMOOTHING, 0, &aa, 0); lf.lfQuality = (aa ? ANTIALIASED_QUALITY : DEFAULT_QUALITY); + lf.lfCharSet = DEFAULT_CHARSET; for (tries = 0; ; tries++) { -#if 0 - PANGO_NOTE - (g_print - ("... trying CreateFontIndirect, " - "height=%d,width=%d,escapement=%d,orientation=%d," - "weight=%d,%s%s%s" - "charset=%d,outprecision=%d,clipprecision=%d," - "quality=%d,pitchandfamily=%#.02x,facename=\"%s\")\n", - lf.lfHeight, lf.lfWidth, lf.lfEscapement, lf.lfOrientation, - lf.lfWeight, (lf.lfItalic ? "italic," : ""), - (lf.lfUnderline ? "underline," : ""), - (lf.lfStrikeOut ? "strikeout," : ""), - lf.lfCharSet, lf.lfOutPrecision, lf.lfClipPrecision, - lf.lfQuality, lf.lfPitchAndFamily, lf.lfFaceName)); -#endif + PING (("... trying CreateFontIndirect " + "height=%ld,width=%ld,escapement=%ld,orientation=%ld," + "weight=%ld,%s%s%s" + "charset=%d,outprecision=%d,clipprecision=%d," + "quality=%d,pitchandfamily=%#.02x,facename=\"%s\")", + lf.lfHeight, lf.lfWidth, lf.lfEscapement, lf.lfOrientation, + lf.lfWeight, (lf.lfItalic ? "italic," : ""), + (lf.lfUnderline ? "underline," : ""), + (lf.lfStrikeOut ? "strikeout," : ""), + lf.lfCharSet, lf.lfOutPrecision, lf.lfClipPrecision, + lf.lfQuality, lf.lfPitchAndFamily, lf.lfFaceName)); hfont = CreateFontIndirect (&lf); if (hfont != NULL) - break; + { + PING (("Success!\n")); + break; + } /* If we fail, try some similar fonts often found on Windows. */ if (tries == 0) diff --git a/pango/pangowin32-fontmap.c b/pango/pangowin32-fontmap.c index 5662d85d..4488f87f 100644 --- a/pango/pangowin32-fontmap.c +++ b/pango/pangowin32-fontmap.c @@ -155,10 +155,12 @@ static guint logfont_nosize_hash (gconstpointer v) { const LOGFONT *lfp = v; + gchar *face = g_ascii_strdown (lfp->lfFaceName, -1); + guint result = g_str_hash (face) + lfp->lfItalic + lfp->lfWeight; - return g_str_hash (lfp->lfFaceName) + - lfp->lfItalic + - lfp->lfWeight; + g_free (face); + + return result; } /* Ditto comparison function */ @@ -168,7 +170,7 @@ logfont_nosize_equal (gconstpointer v1, { const LOGFONT *lfp1 = v1, *lfp2 = v2; - return (strcmp (lfp1->lfFaceName, lfp2->lfFaceName) == 0 + return (g_ascii_strcasecmp (lfp1->lfFaceName, lfp2->lfFaceName) == 0 && lfp1->lfItalic == lfp2->lfItalic && lfp1->lfWeight == lfp2->lfWeight); } @@ -722,7 +724,7 @@ pango_win32_insert_font (PangoWin32FontMap *win32fontmap, PangoStretch stretch; int i; - PING(("lfp.face=%s,wt=%ld,ht=%ld",lfp->lfFaceName,lfp->lfWeight,lfp->lfHeight)); + PING(("lfp.face=%s,charset=%d,it=%d,wt=%ld,ht=%ld",lfp->lfFaceName,lfp->lfCharSet,lfp->lfItalic,lfp->lfWeight,lfp->lfHeight)); /* First insert the LOGFONT into the list of LOGFONTs for the typeface name */ |