[win32k]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 8 Aug 2009 02:42:41 +0000 (02:42 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 8 Aug 2009 02:42:41 +0000 (02:42 +0000)
- Use DIB_GetDIBWidthBytes and BitsPerFormat instead of switch
- Add SPS_CHANGE flag when calling IntEngSetPointerShape
- Fixes VMWare Driver mouse pointer regression

svn path=/trunk/; revision=42489

reactos/subsystems/win32/win32k/eng/mouse.c

index 2ed5596..d72915f 100644 (file)
@@ -382,30 +382,8 @@ EngSetPointerShape(
     pgp->HotSpot.y = yHot;
 
     /* Calculate lDelta for our surfaces. */
-    switch (pso->iBitmapFormat)
-    {
-        case BMF_1BPP:
-            lDelta = pgp->Size.cx >> 3;
-            break;
-        case BMF_4BPP:
-            lDelta = pgp->Size.cx >> 1;
-            break;
-        case BMF_8BPP:
-            lDelta = pgp->Size.cx;
-            break;
-        case BMF_16BPP:
-            lDelta = pgp->Size.cx << 1;
-            break;
-        case BMF_24BPP:
-            lDelta = pgp->Size.cx * 3;
-            break;
-        case BMF_32BPP:
-            lDelta = pgp->Size.cx << 2;
-            break;
-        default:
-            lDelta = 0;
-            break;
-    }
+    lDelta = DIB_GetDIBWidthBytes(pgp->Size.cx, 
+                                  BitsPerFormat(pso->iBitmapFormat));
 
     rcl.left = 0;
     rcl.top = 0;
@@ -690,7 +668,7 @@ GreSetPointerShape(
                                      x,
                                      y,
                                      &pdc->ppdev->Pointer.Exclude,
-                                     fl);
+                                     fl | SPS_CHANGE);
 
     /* Cleanup */
     if (hbmColor)