From: Magnus Olsen Date: Fri, 30 Dec 2005 23:56:27 +0000 (+0000) Subject: solv the issue with mouse poiter is hide, do not show the mousepointer when you are... X-Git-Tag: backups/expat-rbuild@40467~668 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=3362b78138a670f380f1f0f6ab5c0309b5f850aa;hp=cadc0d6ee97dd48f18f195ad668c6169efc1773f 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 --- 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; }