solv the issue with mouse poiter is hide, do not show the mousepointer when you are...
authorMagnus Olsen <magnus@greatlord.com>
Fri, 30 Dec 2005 23:56:27 +0000 (23:56 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Fri, 30 Dec 2005 23:56:27 +0000 (23:56 +0000)
svn path=/trunk/; revision=20475

reactos/subsys/win32k/eng/mouse.c
reactos/subsys/win32k/include/dc.h
reactos/subsys/win32k/ntuser/misc.c

index 12f4688..3bc769c 100644 (file)
@@ -153,10 +153,13 @@ IntHideMousePointer(GDIDEVICE *ppdev, SURFOBJ *DestSurface)
       return;
    }
 
       return;
    }
 
+      
+
    pgp->Enabled = FALSE;
 
    pt.x = pgp->Pos.x - pgp->HotSpot.x;
    pt.y = pgp->Pos.y - pgp->HotSpot.y;
    pgp->Enabled = FALSE;
 
    pt.x = pgp->Pos.x - pgp->HotSpot.x;
    pt.y = pgp->Pos.y - pgp->HotSpot.y;
+   
 
    if (pgp->SaveSurface != NULL)
    {
 
    if (pgp->SaveSurface != NULL)
    {
@@ -207,6 +210,12 @@ IntShowMousePointer(GDIDEVICE *ppdev, SURFOBJ *DestSurface)
    {
       return;
    }
    {
       return;
    }
+   
+   if (pgp->ShowPointer == 1)
+   {
+      return ;
+   }
+
 
    pgp->Enabled = TRUE;
 
 
    pgp->Enabled = TRUE;
 
index b131da6..53c8286 100644 (file)
@@ -134,6 +134,7 @@ typedef struct _GDIPOINTER /* should stay private to ENG */
   HSURF ColorSurface;\r
   HSURF MaskSurface;\r
   HSURF SaveSurface;\r
   HSURF ColorSurface;\r
   HSURF MaskSurface;\r
   HSURF SaveSurface;\r
+  BOOL  ShowPointer;\r
   \r
   /* public pointer information */\r
   RECTL Exclude; /* required publicly for SPS_ACCEPT_EXCLUDE */\r
   \r
   /* public pointer information */\r
   RECTL Exclude; /* required publicly for SPS_ACCEPT_EXCLUDE */\r
index c2aff4a..4f3d40b 100644 (file)
@@ -237,8 +237,9 @@ NtUserCallOneParam(
       {
           if (CurInfo->ShowingCursor != 0)
           {
       {
           if (CurInfo->ShowingCursor != 0)
           {
-             ppdev->SafetyRemoveCount = 1;
-             ppdev->SafetyRemoveLevel = 1;
+             pgp->ShowPointer = 1;
+             //ppdev->SafetyRemoveCount = 1;
+             //ppdev->SafetyRemoveLevel = 1;
              EngMovePointer(SurfObj,-1,-1,NULL);               
              CurInfo->ShowingCursor = 0;                
            }
              EngMovePointer(SurfObj,-1,-1,NULL);               
              CurInfo->ShowingCursor = 0;                
            }
@@ -247,8 +248,9 @@ NtUserCallOneParam(
        else
        {
           /* Show Cursor */              
        else
        {
           /* Show Cursor */              
-          ppdev->SafetyRemoveCount = 0;
-          ppdev->SafetyRemoveLevel = 0;
+          pgp->ShowPointer = 0;
+          //ppdev->SafetyRemoveCount = 0;
+          //ppdev->SafetyRemoveLevel = 0;
           EngMovePointer(SurfObj,-1,-1,NULL);
           CurInfo->ShowingCursor = CURSOR_SHOWING;
        }
           EngMovePointer(SurfObj,-1,-1,NULL);
           CurInfo->ShowingCursor = CURSOR_SHOWING;
        }