summaryrefslogtreecommitdiff
path: root/pango
diff options
context:
space:
mode:
Diffstat (limited to 'pango')
-rw-r--r--pango/pangowin32-fontcache.c34
-rw-r--r--pango/pangowin32-fontmap.c12
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
*/