gdi32: Do not skip the font metrics update after the DC transform change
Dmitry Timoshkov
dmitry at codeweavers.com
Wed Oct 1 16:16:26 CDT 2008
This patch makes the following code sequence work
hfont = CreateFont();
SelectObject(hdc, hfont);
SetWorldTransform(hdc, &xform);
and fixes the bug 7186.
---
dlls/gdi32/font.c | 11 ++++-------
1 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c
index 1e8cac3..21d2ebb 100644
--- a/dlls/gdi32/font.c
+++ b/dlls/gdi32/font.c
@@ -484,14 +484,11 @@ static HGDIOBJ FONT_SelectObject( HGDIOBJ handle, HDC hdc )
return 0;
}
- if (dc->hFont != handle || dc->gdiFont == NULL)
+ if (GetDeviceCaps( dc->hSelf, TEXTCAPS ) & TC_VA_ABLE)
{
- if(GetDeviceCaps(dc->hSelf, TEXTCAPS) & TC_VA_ABLE)
- {
- FONTOBJ *font = GDI_GetObjPtr( handle, FONT_MAGIC ); /* to grab the GDI lock (FIXME) */
- dc->gdiFont = WineEngCreateFontInstance(dc, handle);
- if (font) GDI_ReleaseObj( handle );
- }
+ FONTOBJ *font = GDI_GetObjPtr( handle, FONT_MAGIC ); /* to grab the GDI lock (FIXME) */
+ dc->gdiFont = WineEngCreateFontInstance( dc, handle );
+ if (font) GDI_ReleaseObj( handle );
}
if (dc->funcs->pSelectFont) ret = dc->funcs->pSelectFont( dc->physDev, handle, dc->gdiFont );
--
1.6.0.2
More information about the wine-patches
mailing list