From 7ceb46269db70cbfd5beed05df8d919ba4f7a030 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Tue, 3 Jan 2006 18:49:10 +0000 Subject: [PATCH] Commit a patch for hide and show mouse. (forget it) svn path=/trunk/; revision=20550 --- reactos/subsys/win32k/eng/mouse.c | 34 +++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/reactos/subsys/win32k/eng/mouse.c b/reactos/subsys/win32k/eng/mouse.c index c609d96fcb0..9a896162e65 100644 --- a/reactos/subsys/win32k/eng/mouse.c +++ b/reactos/subsys/win32k/eng/mouse.c @@ -156,7 +156,19 @@ IntHideMousePointer(GDIDEVICE *ppdev, SURFOBJ *DestSurface) pgp->Enabled = FALSE; + + /* + * The mouse is hide from ShowCours and it is frist ?? + */ + if (pgp->ShowPointer < 0) + { + return ; + } + + /* + * Hide the cours + */ pt.x = pgp->Pos.x - pgp->HotSpot.x; pt.y = pgp->Pos.y - pgp->HotSpot.y; @@ -213,6 +225,14 @@ IntShowMousePointer(GDIDEVICE *ppdev, SURFOBJ *DestSurface) pgp->Enabled = TRUE; + /* + * Do not blt the mouse if it in hide + */ + if (pgp->ShowPointer < 0) + { + return ; + } + pt.x = pgp->Pos.x - pgp->HotSpot.x; pt.y = pgp->Pos.y - pgp->HotSpot.y; @@ -244,7 +264,8 @@ IntShowMousePointer(GDIDEVICE *ppdev, SURFOBJ *DestSurface) EngUnlockSurface(SaveSurface); } - /* + + /* * Blit the cursor on the screen. */ @@ -266,6 +287,7 @@ IntShowMousePointer(GDIDEVICE *ppdev, SURFOBJ *DestSurface) SrcPoint.x = max(-pt.x, 0); SrcPoint.y = max(-pt.y, 0); + if (pgp->MaskSurface) MaskSurf = EngLockSurface(pgp->MaskSurface); @@ -275,27 +297,21 @@ IntShowMousePointer(GDIDEVICE *ppdev, SURFOBJ *DestSurface) { if((ColorSurf = EngLockSurface(pgp->ColorSurface))) { - if (pgp->ShowPointer >= 0) - { IntEngBitBltEx(DestSurface, ColorSurf, MaskSurf, NULL, pgp->XlateObject, &DestRect, &SrcPoint, &SrcPoint, NULL, NULL, R4_MASK, FALSE); EngUnlockSurface(ColorSurf); - } } } else - { - if (pgp->ShowPointer >= 0) - { + { IntEngBitBltEx(DestSurface, MaskSurf, NULL, NULL, pgp->XlateObject, &DestRect, &SrcPoint, NULL, NULL, NULL, ROP3_TO_ROP4(SRCAND), FALSE); SrcPoint.y += pgp->Size.cy; IntEngBitBltEx(DestSurface, MaskSurf, NULL, NULL, pgp->XlateObject, &DestRect, &SrcPoint, NULL, NULL, NULL, - ROP3_TO_ROP4(SRCINVERT), FALSE); - } + ROP3_TO_ROP4(SRCINVERT), FALSE); } EngUnlockSurface(MaskSurf); }