[ros-diffs] [gvg] 20463: Another coordinate transformation change. Fixes final problem with bug 1201.

gvg at svn.reactos.org gvg at svn.reactos.org
Fri Dec 30 20:10:49 CET 2005


Another coordinate transformation change. Fixes final problem with bug
1201.
Modified: trunk/reactos/subsys/win32k/objects/text.c
  _____  

Modified: trunk/reactos/subsys/win32k/objects/text.c
--- trunk/reactos/subsys/win32k/objects/text.c	2005-12-30 19:01:44 UTC
(rev 20462)
+++ trunk/reactos/subsys/win32k/objects/text.c	2005-12-30 19:10:43 UTC
(rev 20463)
@@ -1488,17 +1488,6 @@

 
    // 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 @@
       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);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20051230/c542e447/attachment.html


More information about the Ros-diffs mailing list