From 3362b78138a670f380f1f0f6ab5c0309b5f850aa Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Fri, 30 Dec 2005 23:56:27 +0000 Subject: [PATCH] solv the issue with mouse poiter is hide, do not show the mousepointer when you are moving the mouse. tested in winquake svn path=/trunk/; revision=20475 --- reactos/subsys/win32k/eng/mouse.c | 9 +++++++++ reactos/subsys/win32k/include/dc.h | 1 + reactos/subsys/win32k/ntuser/misc.c | 10 ++++++---- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/reactos/subsys/win32k/eng/mouse.c b/reactos/subsys/win32k/eng/mouse.c index 12f4688603e..3bc769cd315 100644 --- a/reactos/subsys/win32k/eng/mouse.c +++ b/reactos/subsys/win32k/eng/mouse.c @@ -153,10 +153,13 @@ IntHideMousePointer(GDIDEVICE *ppdev, SURFOBJ *DestSurface) return; } + + pgp->Enabled = FALSE; pt.x = pgp->Pos.x - pgp->HotSpot.x; pt.y = pgp->Pos.y - pgp->HotSpot.y; + if (pgp->SaveSurface != NULL) { @@ -207,6 +210,12 @@ IntShowMousePointer(GDIDEVICE *ppdev, SURFOBJ *DestSurface) { return; } + + if (pgp->ShowPointer == 1) + { + return ; + } + pgp->Enabled = TRUE; diff --git a/reactos/subsys/win32k/include/dc.h b/reactos/subsys/win32k/include/dc.h index b131da69079..53c8286993a 100644 --- a/reactos/subsys/win32k/include/dc.h +++ b/reactos/subsys/win32k/include/dc.h @@ -134,6 +134,7 @@ typedef struct _GDIPOINTER /* should stay private to ENG */ HSURF ColorSurface; HSURF MaskSurface; HSURF SaveSurface; + BOOL ShowPointer; /* public pointer information */ RECTL Exclude; /* required publicly for SPS_ACCEPT_EXCLUDE */ diff --git a/reactos/subsys/win32k/ntuser/misc.c b/reactos/subsys/win32k/ntuser/misc.c index c2aff4a26cc..4f3d40b914a 100644 --- a/reactos/subsys/win32k/ntuser/misc.c +++ b/reactos/subsys/win32k/ntuser/misc.c @@ -237,8 +237,9 @@ NtUserCallOneParam( { 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; } @@ -247,8 +248,9 @@ NtUserCallOneParam( 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; } -- 2.17.1