From a98902ef25eb52b514f026d02307ba480a132d4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Mon, 19 Apr 2010 00:11:30 +0000 Subject: [PATCH] [WIN32K] - Do not draw mouse when it has intentionnally been put away. Fixes some mouse-related graphical glitches svn path=/branches/reactos-yarotows/; revision=46933 --- subsystems/win32/win32k/eng/mouse.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/subsystems/win32/win32k/eng/mouse.c b/subsystems/win32/win32k/eng/mouse.c index d96e8dd4ed2..6d35c9e8fa7 100644 --- a/subsystems/win32/win32k/eng/mouse.c +++ b/subsystems/win32/win32k/eng/mouse.c @@ -385,7 +385,7 @@ EngSetPointerShape( pgp->HotSpot.y = yHot; /* Calculate lDelta for our surfaces. */ - lDelta = DIB_GetDIBWidthBytes(pgp->Size.cx, + lDelta = DIB_GetDIBWidthBytes(pgp->Size.cx, BitsPerFormat(pso->iBitmapFormat)); rcl.left = 0; @@ -526,7 +526,7 @@ EngMovePointer( prcl->right = prcl->left + pgp->Size.cx; prcl->bottom = prcl->top + pgp->Size.cy; } - } + } else if (prcl != NULL) { prcl->left = prcl->top = prcl->right = prcl->bottom = -1; @@ -542,6 +542,8 @@ IntEngMovePointer( { SURFACE *psurf = CONTAINING_RECORD(pso, SURFACE, SurfObj); PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev; + if(ppdev->SafetyRemoveLevel) + return ; SURFACE_LockBitmapBits(psurf); ppdev->pfnMovePointer(pso, x, y, prcl); @@ -654,7 +656,7 @@ GreSetPointerShape( { /* We have one, lock it */ psurfColor = SURFACE_ShareLockSurface(hbmColor); - + if (psurfColor) { /* Create an XLATEOBJ, no mono support */