mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-18 18:05:07 +00:00
(w32_load_system_font): Set FONT_WIDTH to maximum, not
average width. Set fontp->average_width and fontp->space_width to their appropriate values.
This commit is contained in:
parent
3aefd49fb9
commit
ad5674f5a1
21
src/w32fns.c
21
src/w32fns.c
@ -64,6 +64,7 @@ extern double atof ();
|
||||
extern int w32_console_toggle_lock_key P_ ((int, Lisp_Object));
|
||||
extern void w32_menu_display_help P_ ((HWND, HMENU, UINT, UINT));
|
||||
extern void w32_free_menu_strings P_ ((HWND));
|
||||
extern XCharStruct *w32_per_char_metric P_ ((XFontStruct *, wchar_t *, int));
|
||||
|
||||
extern int quit_char;
|
||||
|
||||
@ -4544,7 +4545,7 @@ w32_load_system_font (f,fontname,size)
|
||||
/* Fill out details in lf according to the font that was
|
||||
actually loaded. */
|
||||
lf.lfHeight = font->tm.tmInternalLeading - font->tm.tmHeight;
|
||||
lf.lfWidth = font->tm.tmAveCharWidth;
|
||||
lf.lfWidth = font->tm.tmMaxCharWidth;
|
||||
lf.lfWeight = font->tm.tmWeight;
|
||||
lf.lfItalic = font->tm.tmItalic;
|
||||
lf.lfCharSet = font->tm.tmCharSet;
|
||||
@ -4592,6 +4593,24 @@ w32_load_system_font (f,fontname,size)
|
||||
fontp->name = (char *) xmalloc (strlen (fontname) + 1);
|
||||
bcopy (fontname, fontp->name, strlen (fontname) + 1);
|
||||
|
||||
if (lf.lfPitchAndFamily == FIXED_PITCH)
|
||||
{
|
||||
/* Fixed width font. */
|
||||
fontp->average_width = fontp->space_width = FONT_WIDTH (font);
|
||||
}
|
||||
else
|
||||
{
|
||||
wchar_t space = 32;
|
||||
XCharStruct* pcm;
|
||||
pcm = w32_per_char_metric (font, &space, ANSI_FONT);
|
||||
if (pcm)
|
||||
fontp->space_width = pcm->width;
|
||||
else
|
||||
fontp->space_width = FONT_WIDTH (font);
|
||||
|
||||
fontp->average_width = font->tm.tmAveCharWidth;
|
||||
}
|
||||
|
||||
charset = xlfd_charset_of_font (fontname);
|
||||
|
||||
/* Cache the W32 codepage for a font. This makes w32_encode_char
|
||||
|
Loading…
Reference in New Issue
Block a user