mirror of
https://github.com/vim/vim.git
synced 2025-09-29 04:34:16 -04:00
patch 8.2.4194: MS-Windows: code for calculating font size is duplicated
Problem: MS-Windows: code for calculating font size is duplicated. Solution: Move the code to a function. (Ken Takata, closes #9603)
This commit is contained in:
@@ -1510,6 +1510,20 @@ update_scrollbar_size(void)
|
|||||||
gui.scrollbar_height = pGetSystemMetricsForDpi(SM_CYHSCROLL, s_dpi);
|
gui.scrollbar_height = pGetSystemMetricsForDpi(SM_CYHSCROLL, s_dpi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the average character size of a font.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
GetAverageFontSize(HDC hdc, SIZE *size)
|
||||||
|
{
|
||||||
|
// GetTextMetrics() may not return the right value in tmAveCharWidth
|
||||||
|
// for some fonts. Do our own average computation.
|
||||||
|
GetTextExtentPoint(hdc,
|
||||||
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
|
||||||
|
52, size);
|
||||||
|
size->cx = (size->cx / 26 + 1) / 2;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get the character size of a font.
|
* Get the character size of a font.
|
||||||
*/
|
*/
|
||||||
@@ -1523,13 +1537,9 @@ GetFontSize(GuiFont font)
|
|||||||
TEXTMETRIC tm;
|
TEXTMETRIC tm;
|
||||||
|
|
||||||
GetTextMetrics(hdc, &tm);
|
GetTextMetrics(hdc, &tm);
|
||||||
// GetTextMetrics() may not return the right value in tmAveCharWidth
|
GetAverageFontSize(hdc, &size);
|
||||||
// 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_width = size.cx + tm.tmOverhang;
|
||||||
gui.char_height = tm.tmHeight + p_linespace;
|
gui.char_height = tm.tmHeight + p_linespace;
|
||||||
|
|
||||||
SelectFont(hdc, hfntOld);
|
SelectFont(hdc, hfntOld);
|
||||||
@@ -7563,17 +7573,10 @@ get_dialog_font_metrics(void)
|
|||||||
|
|
||||||
hdc = GetDC(s_hwnd);
|
hdc = GetDC(s_hwnd);
|
||||||
SelectObject(hdc, hfontTools);
|
SelectObject(hdc, hfontTools);
|
||||||
/*
|
GetAverageFontSize(hdc, &size);
|
||||||
* GetTextMetrics() doesn't return the right value in
|
|
||||||
* tmAveCharWidth, so we have to figure out the dialog base units
|
|
||||||
* ourselves.
|
|
||||||
*/
|
|
||||||
GetTextExtentPoint(hdc,
|
|
||||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
|
|
||||||
52, &size);
|
|
||||||
ReleaseDC(s_hwnd, hdc);
|
ReleaseDC(s_hwnd, hdc);
|
||||||
|
|
||||||
s_dlgfntwidth = (WORD)((size.cx / 26 + 1) / 2);
|
s_dlgfntwidth = (WORD)size.cx;
|
||||||
s_dlgfntheight = (WORD)size.cy;
|
s_dlgfntheight = (WORD)size.cy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
4194,
|
||||||
/**/
|
/**/
|
||||||
4193,
|
4193,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user