reactos/subsys/win32k/eng
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
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)
{