From 7c7520a063d8aa8b460bc08ae9c0d09dd5cdb6c8 Mon Sep 17 00:00:00 2001 From: Joachim Henze Date: Tue, 3 Nov 2020 14:15:09 +0100 Subject: [PATCH] [0.4.7][WIN32SS:NTGDI] Fix missing text in labels and buttons for .NET apps. Fixes CORE-15000 "Totally Broken/messed up text in many .NET applications" and its duplicates CORE-14679 "Missing fonts in Reg Organizer 8.16" CORE-15398 "Messed fonts in Microsoft SQL Server 2005 Express Edition" CORE-15611 "Word 2003: Organization Chart has corrupted display" There was a missing break statement in ftGdiGetGlyphOutline(). Found by JIRA contributor 'I_Kill_Bugs' :-) Add also brackets around 'case's to make code navigation easier. Fix picked from 0.4.12-dev-865-g 0e56ec8892a737823b4b008f02ae0261cbf0b64a --- win32ss/gdi/ntgdi/freetype.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/win32ss/gdi/ntgdi/freetype.c b/win32ss/gdi/ntgdi/freetype.c index eb2fc7756da..72a9659f767 100644 --- a/win32ss/gdi/ntgdi/freetype.c +++ b/win32ss/gdi/ntgdi/freetype.c @@ -3352,6 +3352,7 @@ ftGdiGetGlyphOutline( switch (iFormat) { case GGO_BITMAP: + { width = gm.gmBlackBoxX; height = gm.gmBlackBoxY; pitch = ((width + 31) >> 5) << 2; @@ -3379,6 +3380,7 @@ ftGdiGetGlyphOutline( } case ft_glyph_format_outline: + { ft_bitmap.width = width; ft_bitmap.rows = height; ft_bitmap.pitch = pitch; @@ -3396,12 +3398,15 @@ ftGdiGetGlyphOutline( FT_Outline_Get_Bitmap(library, &ft_face->glyph->outline, &ft_bitmap); IntUnLockFreeType; break; + } default: DPRINT1("Loaded glyph format %x\n", ft_face->glyph->format); return GDI_ERROR; } + break; + } case GGO_GRAY2_BITMAP: case GGO_GRAY4_BITMAP: @@ -3487,6 +3492,8 @@ ftGdiGetGlyphOutline( DPRINT1("Loaded glyph format %x\n", ft_face->glyph->format); return GDI_ERROR; } + + break; } case GGO_NATIVE: @@ -3514,6 +3521,7 @@ ftGdiGetGlyphOutline( IntUnLockFreeType; break; } + case GGO_BEZIER: { FT_Outline *outline = &ft_face->glyph->outline;