Mercurial > emacs
diff src/w32fns.c @ 90878:efe9a1312ac6
* w32fns.c (w32_load_system_font): Fix detecting FIXED_PITCH fonts.
(x_to_w32_font): Fill in lfPitchAndFamily correctly.
* w32fns.c [USE_FONT_BACKEND]: Port font backend changes from xfns.c.
(x_to_w32_charset, w32_to_x_charset): Expose externally.
author | Jason Rumney <jasonr@gnu.org> |
---|---|
date | Thu, 31 May 2007 13:09:08 +0000 |
parents | 6d2559699bd0 |
children | c36f1ca93a6e |
line wrap: on
line diff
--- a/src/w32fns.c Thu May 31 01:31:58 2007 +0000 +++ b/src/w32fns.c Thu May 31 13:09:08 2007 +0000 @@ -4707,7 +4707,7 @@ fontp->name = (char *) xmalloc (strlen (fontname) + 1); bcopy (fontname, fontp->name, strlen (fontname) + 1); - if (lf.lfPitchAndFamily == FIXED_PITCH) + if ((lf.lfPitchAndFamily & 0x03) == FIXED_PITCH) { /* Fixed width font. */ fontp->average_width = fontp->space_width = FONT_WIDTH (font); @@ -4725,7 +4725,6 @@ fontp->average_width = font->tm.tmAveCharWidth; } - fontp->charset = -1; charset = xlfd_charset_of_font (fontname); @@ -5612,8 +5611,12 @@ lplogfont->lfHeight = atoi (height) * dpi / 720; if (fields > 0) - lplogfont->lfPitchAndFamily = - (fields > 0 && pitch == 'p') ? VARIABLE_PITCH : FIXED_PITCH; + { + if (pitch == 'p') + lplogfont->lfPitchAndFamily = VARIABLE_PITCH | FF_DONTCARE; + else if (pitch == 'c') + lplogfont->lfPitchAndFamily = FIXED_PITCH | FF_DONTCARE; + } fields--;