diff --git a/win32ss/gdi/ntgdi/freetype.c b/win32ss/gdi/ntgdi/freetype.c index 5fb58cf..13f2d3b 100644 --- a/win32ss/gdi/ntgdi/freetype.c +++ b/win32ss/gdi/ntgdi/freetype.c @@ -5,7 +5,7 @@ * PURPOSE: FreeType font engine interface * PROGRAMMERS: Copyright 2001 Huw D M Davies for CodeWeavers. * Copyright 2006 Dmitry Timoshkov for CodeWeavers. - * Copyright 2016-2017 Katayama Hirofumi MZ. + * Copyright 2016-2018 Katayama Hirofumi MZ. */ /** Includes ******************************************************************/ @@ -2989,10 +2989,6 @@ IntRequestFontSize(PDC dc, FT_Face face, LONG Width, LONG Height) if (Width < 0) Width = -Width; - if (Height < 0) - { - Height = -Height; - } if (Height == 0) { Height = dc->ppdev->devinfo.lfDefaultFont.lfHeight; @@ -3002,6 +2998,17 @@ IntRequestFontSize(PDC dc, FT_Face face, LONG Width, LONG Height) Height = Width; } + if (Height < 0) + { + /* case (A): lfHeight is negative: the character height */ + Height = -Height; + } + else if (Height > 0) + { + /* case (B): lfHeight is positive: the cell height */ + Height = Height * face->units_per_EM / face->height; + } + if (Height < 1) Height = 1; diff --git a/win32ss/gdi/ntgdi/stockobj.c b/win32ss/gdi/ntgdi/stockobj.c index ac339b6..0a4b54b 100644 --- a/win32ss/gdi/ntgdi/stockobj.c +++ b/win32ss/gdi/ntgdi/stockobj.c @@ -67,32 +67,32 @@ static LOGFONTW OEMFixedFont = }; static LOGFONTW AnsiFixedFont = - { 14, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, + { 12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, /*CLIP_DEFAULT_PRECIS*/ CLIP_STROKE_PRECIS, /*DEFAULT_QUALITY*/ PROOF_QUALITY, FF_DONTCARE | FIXED_PITCH, L"Courier" }; static LOGFONTW AnsiVarFont = - { 11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, + { 12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, /*CLIP_DEFAULT_PRECIS*/ CLIP_STROKE_PRECIS, /*DEFAULT_QUALITY*/ PROOF_QUALITY, FF_DONTCARE | VARIABLE_PITCH, L"MS Sans Serif" }; static LOGFONTW SystemFont = - { 12, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, + { 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DONTCARE | VARIABLE_PITCH, L"System" }; static LOGFONTW DeviceDefaultFont = - { 12, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, + { 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DONTCARE | VARIABLE_PITCH, L"System" }; static LOGFONTW SystemFixedFont = - { 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, + { 15, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DONTCARE | FIXED_PITCH, L"Fixedsys" }; static LOGFONTW DefaultGuiFont = - { 11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, + { -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, /*DEFAULT_QUALITY*/ PROOF_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" };