[WIN32K]
authorRafal Harabien <rafalh@reactos.org>
Sun, 12 Feb 2012 11:02:00 +0000 (11:02 +0000)
committerRafal Harabien <rafalh@reactos.org>
Sun, 12 Feb 2012 11:02:00 +0000 (11:02 +0000)
- Clip test vertically in ExtTextOut when ETO_CLIPPED is used

svn path=/trunk/; revision=55558

reactos/subsystems/win32/win32k/objects/freetype.c

index 4cab296..0d33f48 100644 (file)
@@ -3495,8 +3495,7 @@ GreExtTextOutW(
          * brush.
          */
 
          * brush.
          */
 
-        if (lprc &&
-                (fuOptions & ETO_CLIPPED) &&
+        if (lprc && (fuOptions & ETO_CLIPPED) &&
                 DestRect.right >= lprc->right + dc->ptlDCOrig.x)
         {
             // We do the check '>=' instead of '>' to possibly save an iteration
                 DestRect.right >= lprc->right + dc->ptlDCOrig.x)
         {
             // We do the check '>=' instead of '>' to possibly save an iteration
@@ -3505,6 +3504,11 @@ GreExtTextOutW(
             DestRect.right = lprc->right + dc->ptlDCOrig.x;
             DoBreak = TRUE;
         }
             DestRect.right = lprc->right + dc->ptlDCOrig.x;
             DoBreak = TRUE;
         }
+        if (lprc && (fuOptions & ETO_CLIPPED) &&
+                DestRect.bottom >= lprc->bottom + dc->ptlDCOrig.y)
+        {
+            DestRect.bottom = lprc->bottom + dc->ptlDCOrig.y;
+        }
         MouseSafetyOnDrawStart(dc->ppdev, DestRect.left, DestRect.top, DestRect.right, DestRect.bottom);
         IntEngMaskBlt(
             SurfObj,
         MouseSafetyOnDrawStart(dc->ppdev, DestRect.left, DestRect.top, DestRect.right, DestRect.bottom);
         IntEngMaskBlt(
             SurfObj,