diff --git a/reactos/subsystems/win32/win32k/objects/freetype.c b/reactos/subsystems/win32/win32k/objects/freetype.c index 4cab296de33..0d33f483cda 100644 --- a/reactos/subsystems/win32/win32k/objects/freetype.c +++ b/reactos/subsystems/win32/win32k/objects/freetype.c @@ -3495,8 +3495,7 @@ GreExtTextOutW( * 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 @@ -3505,6 +3504,11 @@ GreExtTextOutW( 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,