Commit in reactos/subsys/win32k on MAIN
eng/mouse.c+3-121.63 -> 1.64
objects/cursoricon.c+19-111.50 -> 1.51
+22-23
2 modified files
- Minor corrections to emulated mouse pointer handling.

reactos/subsys/win32k/eng
mouse.c 1.63 -> 1.64
diff -u -r1.63 -r1.64
--- mouse.c	5 Mar 2004 09:02:41 -0000	1.63
+++ mouse.c	15 Mar 2004 20:21:50 -0000	1.64
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: mouse.c,v 1.63 2004/03/05 09:02:41 hbirr Exp $
+/* $Id: mouse.c,v 1.64 2004/03/15 20:21:50 navaraf Exp $
  *
  * PROJECT:          ReactOS kernel
  * PURPOSE:          Mouse
@@ -282,7 +282,8 @@
       {
         ExAcquireFastMutex(&CurInfo->CursorMutex);
         IntLockGDIDriver(SurfGDI);
-        SurfGDI->MovePointer(SurfObj, CurInfo->x, CurInfo->y, &PointerRect);
+        if (SurfGDI->MovePointer != NULL)
+          SurfGDI->MovePointer(SurfObj, CurInfo->x, CurInfo->y, &PointerRect);
         IntUnLockGDIDriver(SurfGDI);
         SetPointerRect(CurInfo, &PointerRect);
         ExReleaseFastMutex(&CurInfo->CursorMutex);
@@ -849,14 +850,6 @@
    IN RECTL *prcl)
 {
    GDIDEVICE *ppdev = (GDIDEVICE *)pso->hdev;
-   PSURFGDI SurfGDI = AccessInternalObjectFromUserObject(pso);
-
-   /*
-    * Prevent GDI from trying to remve the mouse cursor,
-    * because it would cause unexpected reentrancy effects.
-    */
-
-   SurfGDI->PointerStatus = SPS_ACCEPT_NOEXCLUDE;
 
    IntHideMousePointer(ppdev, pso);
    ppdev->PointerAttributes.Column = x - ppdev->PointerHotSpot.x;
@@ -873,8 +866,6 @@
       prcl->right = prcl->left + ppdev->PointerAttributes.Width;
       prcl->bottom = prcl->top + ppdev->PointerAttributes.Height;
    }
-
-   SurfGDI->PointerStatus = SPS_ACCEPT_EXCLUDE;
 }
 
 /* EOF */

reactos/subsys/win32k/objects
cursoricon.c 1.50 -> 1.51
diff -u -r1.50 -r1.51
--- cursoricon.c	27 Feb 2004 10:08:21 -0000	1.50
+++ cursoricon.c	15 Mar 2004 20:21:51 -0000	1.51
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: cursoricon.c,v 1.50 2004/02/27 10:08:21 weiden Exp $ */
+/* $Id: cursoricon.c,v 1.51 2004/03/15 20:21:51 navaraf Exp $ */
 
 #undef WIN32_LEAN_AND_MEAN
 
@@ -146,7 +146,8 @@
       {
          /* Remove the cursor if it was displayed */
          IntLockGDIDriver(SurfGDI);
-         SurfGDI->MovePointer(SurfObj, -1, -1, &PointerRect);
+         if (SurfGDI->MovePointer != NULL)
+           SurfGDI->MovePointer(SurfObj, -1, -1, &PointerRect);
          IntUnLockGDIDriver(SurfGDI);
          SetPointerRect(CurInfo, &PointerRect);
       }
@@ -219,15 +220,22 @@
       CurInfo->CurrentCursorObject = NULL;
     }
     
-    IntLockGDIDriver(SurfGDI);
-    SurfGDI->PointerStatus = SurfGDI->SetPointerShape(SurfObj, soMask, soColor, XlateObj,
-                                                      NewCursor->IconInfo.xHotspot,
-                                                      NewCursor->IconInfo.yHotspot,
-                                                      CurInfo->x, 
-                                                      CurInfo->y, 
-                                                      &PointerRect,
-                                                      SPS_CHANGE);
-    IntUnLockGDIDriver(SurfGDI);
+    if (SurfGDI->SetPointerShape != NULL)
+    {
+      IntLockGDIDriver(SurfGDI);
+      SurfGDI->PointerStatus = SurfGDI->SetPointerShape(SurfObj, soMask, soColor, XlateObj,
+                                                        NewCursor->IconInfo.xHotspot,
+                                                        NewCursor->IconInfo.yHotspot,
+                                                        CurInfo->x, 
+                                                        CurInfo->y, 
+                                                        &PointerRect,
+                                                        SPS_CHANGE);
+      IntUnLockGDIDriver(SurfGDI);
+    }
+    else
+    {
+      SurfGDI->PointerStatus = SPS_DECLINE;
+    }
 
     if(SurfGDI->PointerStatus == SPS_DECLINE)
     {
CVSspam 0.2.8