From 42c1f0fab7360768532c0aacb11e9f599e316088 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=A9=20van=20Geldorp?= Date: Fri, 30 Dec 2005 19:10:43 +0000 Subject: [PATCH] Another coordinate transformation change. Fixes final problem with bug 1201. svn path=/trunk/; revision=20463 --- reactos/subsys/win32k/objects/text.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/reactos/subsys/win32k/objects/text.c b/reactos/subsys/win32k/objects/text.c index 89589eaeab9..13fb9571f21 100644 --- a/reactos/subsys/win32k/objects/text.c +++ b/reactos/subsys/win32k/objects/text.c @@ -1488,17 +1488,6 @@ NtGdiExtTextOut( // TODO: Write test-cases to exactly match real Windows in different // bad parameters (e.g. does Windows check the DC or the RECT first?). - if (lprc && (fuOptions & (ETO_OPAQUE | ETO_CLIPPED))) - { - // At least one of the two flags were specified. Copy lprc. Once. - Status = MmCopyFromCaller(&SpecifiedDestRect, lprc, sizeof(RECT)); - if (!NT_SUCCESS(Status)) - { - SetLastWin32Error(ERROR_INVALID_PARAMETER); - return FALSE; - } - } - dc = DC_LockDc(hDC); if (!dc) { @@ -1512,6 +1501,18 @@ NtGdiExtTextOut( return TRUE; } + if (lprc && (fuOptions & (ETO_OPAQUE | ETO_CLIPPED))) + { + // At least one of the two flags were specified. Copy lprc. Once. + Status = MmCopyFromCaller(&SpecifiedDestRect, lprc, sizeof(RECT)); + if (!NT_SUCCESS(Status)) + { + SetLastWin32Error(ERROR_INVALID_PARAMETER); + return FALSE; + } + IntLPtoDP(dc, (POINT *) &SpecifiedDestRect, 2); + } + if (NULL != UnsafeDx && Count > 0) { Dx = ExAllocatePoolWithTag(PagedPool, Count * sizeof(INT), TAG_GDITEXT); -- 2.17.1