emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/w32font.c,v


From: Jason Rumney
Subject: [Emacs-diffs] Changes to emacs/src/w32font.c,v
Date: Tue, 05 Feb 2008 21:50:58 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Jason Rumney <jasonr>   08/02/05 21:50:58

Index: w32font.c
===================================================================
RCS file: /sources/emacs/emacs/src/w32font.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- w32font.c   4 Feb 2008 15:41:52 -0000       1.5
+++ w32font.c   5 Feb 2008 21:50:58 -0000       1.6
@@ -724,11 +724,41 @@
   font->file_name = NULL;
   font->encoding_charset = -1;
   font->repertory_charset = -1;
-  font->min_width = 0;
+  /* TODO: do we really want the minimum width here, which could be negative? 
*/
+  font->min_width = font->font.space_width;
   font->ascent = w32_font->metrics.tmAscent;
   font->descent = w32_font->metrics.tmDescent;
   font->scalable = w32_font->metrics.tmPitchAndFamily & TMPF_VECTOR;
 
+  /* Set global flag fonts_changed_p to non-zero if the font loaded
+     has a character with a smaller width than any other character
+     before, or if the font loaded has a smaller height than any other
+     font loaded before.  If this happens, it will make a glyph matrix
+     reallocation necessary.  */
+  {
+    struct w32_display_info *dpyinfo = FRAME_W32_DISPLAY_INFO (f);
+    dpyinfo->n_fonts++;
+
+    if (dpyinfo->n_fonts == 1)
+      {
+        dpyinfo->smallest_font_height = font->font.height;
+        dpyinfo->smallest_char_width = font->min_width;
+      }
+    else
+      {
+        if (dpyinfo->smallest_font_height > font->font.height)
+          {
+            dpyinfo->smallest_font_height = font->font.height;
+            fonts_changed_p |= 1;
+          }
+        if (dpyinfo->smallest_char_width > font->min_width)
+          {
+            dpyinfo->smallest_char_width = font->min_width;
+            fonts_changed_p |= 1;
+          }
+      }
+  }
+
   return 1;
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]