mirror of
https://github.com/vim/vim
synced 2025-07-16 09:12:00 +00:00
patch 8.1.1294: MS-Windows: Some fonts return wrong average char width
Problem: MS-Windows: Some fonts return wrong average char width. Solution: Compute the average ourselves. (Ken Takata, closes #4356)
This commit is contained in:
@ -1455,10 +1455,16 @@ GetFontSize(GuiFont font)
|
||||
HWND hwnd = GetDesktopWindow();
|
||||
HDC hdc = GetWindowDC(hwnd);
|
||||
HFONT hfntOld = SelectFont(hdc, (HFONT)font);
|
||||
SIZE size;
|
||||
TEXTMETRIC tm;
|
||||
|
||||
GetTextMetrics(hdc, &tm);
|
||||
gui.char_width = tm.tmAveCharWidth + tm.tmOverhang;
|
||||
// GetTextMetrics() may not return the right value in tmAveCharWidth
|
||||
// for some fonts. Do our own average computation.
|
||||
GetTextExtentPoint(hdc,
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
|
||||
52, &size);
|
||||
gui.char_width = (size.cx / 26 + 1) / 2 + tm.tmOverhang;
|
||||
|
||||
gui.char_height = tm.tmHeight + p_linespace;
|
||||
|
||||
|
@ -767,6 +767,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1294,
|
||||
/**/
|
||||
1293,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user