changeset 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 91d84dc66d41
children 82b86c925f88
files src/w32fns.c
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
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--;