Module: wine Branch: master Commit: 433c3cfeecbd518be6f54d572defbfd9b3601ace URL: http://source.winehq.org/git/wine.git/?a=commit;h=433c3cfeecbd518be6f54d572d...
Author: Dmitry Timoshkov dmitry@codeweavers.com Date: Tue Jun 24 16:12:32 2008 +0900
gdi32: Don't return cached glyph metrics if a custom transformation was requested.
---
dlls/gdi32/freetype.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 01c9530..e185544 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -4327,8 +4327,13 @@ DWORD WineEngGetGlyphOutline(GdiFont *incoming_font, UINT glyph, UINT format, font->gm = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, font->gm, font->gmsize * sizeof(GM*)); } else { - if(format == GGO_METRICS && font->gm[original_index / GM_BLOCK_SIZE] != NULL && FONT_GM(font,original_index)->init ) { + if (format == GGO_METRICS && font->gm[original_index / GM_BLOCK_SIZE] != NULL && + FONT_GM(font,original_index)->init && (!lpmat || is_identity_MAT2(lpmat))) + { *lpgm = FONT_GM(font,original_index)->gm; + TRACE("cached: %u,%u,%s,%d,%d\n", lpgm->gmBlackBoxX, lpgm->gmBlackBoxY, + wine_dbgstr_point(&lpgm->gmptGlyphOrigin), + lpgm->gmCellIncX, lpgm->gmCellIncY); LeaveCriticalSection( &freetype_cs ); return 1; /* FIXME */ }