From 262f712810cd7db20fe67decc2cde1bb4e5a7c83 Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Sat, 4 May 2019 10:07:24 +0900 Subject: [PATCH] [WIN32SS][NTGDI] Correctly get/update ptlCurrent about TA_UPDATECP --- win32ss/gdi/ntgdi/freetype.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/win32ss/gdi/ntgdi/freetype.c b/win32ss/gdi/ntgdi/freetype.c index 0f04a3a5d15..f73c1c09022 100644 --- a/win32ss/gdi/ntgdi/freetype.c +++ b/win32ss/gdi/ntgdi/freetype.c @@ -5667,9 +5667,10 @@ IntExtTextOutW( if (pdcattr->flTextAlign & TA_UPDATECP) { - Start.x = pdcattr->ptlCurrent.x; - Start.y = pdcattr->ptlCurrent.y; - } else { + IntGetCurrentPositionEx(dc, &Start); + } + else + { Start.x = XStart; Start.y = YStart; } @@ -6311,6 +6312,8 @@ IntExtTextOutW( pdcattr->ptlCurrent.x = vecs[2].x - dc->ptlDCOrig.x; pdcattr->ptlCurrent.y = vecs[2].y - dc->ptlDCOrig.y; IntDPtoLP(dc, &pdcattr->ptlCurrent, 1); + pdcattr->ulDirty_ &= ~DIRTY_PTLCURRENT; + pdcattr->ulDirty_ |= (DIRTY_PTFXCURRENT | DIRTY_STYLESTATE); } IntUnLockFreeType();