mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-04-10 07:38:06 -05:00
Finally fixed the point/pixel confusion in font handling. Thanks to
Roman Surma for pointing me at the relevant bits of documentation. All font sizes should now be measured in points, and everything should be consistent, and (with any luck) old Registry settings should adapt gracefully too. [originally from svn r992]
This commit is contained in:
parent
d823077f18
commit
313b332a38
12
settings.c
12
settings.c
@ -264,6 +264,18 @@ void load_settings (char *section, int do_host, Config *cfg) {
|
||||
gppi (sesskey, "FontIsBold", 0, &cfg->fontisbold);
|
||||
gppi (sesskey, "FontCharSet", ANSI_CHARSET, &cfg->fontcharset);
|
||||
gppi (sesskey, "FontHeight", 10, &cfg->fontheight);
|
||||
if (cfg->fontheight < 0) {
|
||||
int oldh, newh;
|
||||
HDC hdc = GetDC(NULL);
|
||||
int logpix = GetDeviceCaps(hdc, LOGPIXELSY);
|
||||
ReleaseDC(NULL, hdc);
|
||||
|
||||
oldh = -cfg->fontheight;
|
||||
newh = MulDiv(oldh, 72, logpix) + 1;
|
||||
if (MulDiv(newh, logpix, 72) > oldh)
|
||||
newh--;
|
||||
cfg->fontheight = newh;
|
||||
}
|
||||
gppi (sesskey, "FontVTMode", VT_OEMANSI, (int *)&cfg->vtmode);
|
||||
gppi (sesskey, "TryPalette", 0, &cfg->try_palette);
|
||||
gppi (sesskey, "BoldAsColour", 1, &cfg->bold_colour);
|
||||
|
7
windlg.c
7
windlg.c
@ -467,9 +467,8 @@ static void fmtfont (char *buf) {
|
||||
if (cfg.fontheight == 0)
|
||||
strcat (buf, "default height");
|
||||
else
|
||||
sprintf (buf+strlen(buf), "%d-%s",
|
||||
(cfg.fontheight < 0 ? -cfg.fontheight : cfg.fontheight),
|
||||
(cfg.fontheight < 0 ? "pixel" : "point"));
|
||||
sprintf (buf+strlen(buf), "%d-point",
|
||||
(cfg.fontheight < 0 ? -cfg.fontheight : cfg.fontheight));
|
||||
}
|
||||
|
||||
static void init_dlg_ctrls(HWND hwnd) {
|
||||
@ -1549,7 +1548,7 @@ static int GenericMainDlgProc (HWND hwnd, UINT msg,
|
||||
cfg.font[sizeof(cfg.font)-1] = '\0';
|
||||
cfg.fontisbold = (lf.lfWeight == FW_BOLD);
|
||||
cfg.fontcharset = lf.lfCharSet;
|
||||
cfg.fontheight = lf.lfHeight;
|
||||
cfg.fontheight = cf.iPointSize / 10;
|
||||
fmtfont (fontstatic);
|
||||
SetDlgItemText (hwnd, IDC_FONTSTATIC, fontstatic);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user