* Fix ShowingCursor counter interpretation. Values >= 0 means cursor is shown, values <0 means cursor is hidden. Fixes few user32:cursoricon tests.

svn path=/trunk/; revision=51552
This commit is contained in:
Rafal Harabien 2011-05-02 11:38:30 +00:00
parent 8d7e24af8f
commit 6774978a84

View file

@ -63,7 +63,7 @@ InitCursorImpl()
gSysCursorInfo.bClipped = FALSE; gSysCursorInfo.bClipped = FALSE;
gSysCursorInfo.LastBtnDown = 0; gSysCursorInfo.LastBtnDown = 0;
gSysCursorInfo.CurrentCursorObject = NULL; gSysCursorInfo.CurrentCursorObject = NULL;
gSysCursorInfo.ShowingCursor = 0; gSysCursorInfo.ShowingCursor = -1;
gSysCursorInfo.ClickLockActive = FALSE; gSysCursorInfo.ClickLockActive = FALSE;
gSysCursorInfo.ClickLockTime = 0; gSysCursorInfo.ClickLockTime = 0;
@ -129,7 +129,7 @@ UserSetCursor(
/* Do we have a new cursor? */ /* Do we have a new cursor? */
if (NewCursor) if (NewCursor)
{ {
CurInfo->ShowingCursor = 1; CurInfo->ShowingCursor = 0;
CurInfo->CurrentCursorObject = NewCursor; CurInfo->CurrentCursorObject = NewCursor;
/* Call GDI to set the new screen cursor */ /* Call GDI to set the new screen cursor */
@ -144,7 +144,7 @@ UserSetCursor(
else else
{ {
/* Check if were diplaying a cursor */ /* Check if were diplaying a cursor */
if (OldCursor && CurInfo->ShowingCursor) if (OldCursor && CurInfo->ShowingCursor >= 0)
{ {
/* Remove the cursor */ /* Remove the cursor */
GreMovePointer(hdcScreen, -1, -1); GreMovePointer(hdcScreen, -1, -1);
@ -152,7 +152,7 @@ UserSetCursor(
} }
CurInfo->CurrentCursorObject = NULL; CurInfo->CurrentCursorObject = NULL;
CurInfo->ShowingCursor = 0; CurInfo->ShowingCursor = -1;
} }
/* Return the old cursor */ /* Return the old cursor */
@ -219,13 +219,13 @@ int UserShowCursor(BOOL bShow)
if (!(hdcScreen = IntGetScreenDC())) if (!(hdcScreen = IntGetScreenDC()))
{ {
return 0; /* No mouse */ return -1; /* No mouse */
} }
if (bShow == FALSE) if (bShow == FALSE)
{ {
/* Check if were diplaying a cursor */ /* Check if were diplaying a cursor */
if (CurInfo->ShowingCursor == 1) if (CurInfo->ShowingCursor == 0)
{ {
/* Remove the pointer */ /* Remove the pointer */
GreMovePointer(hdcScreen, -1, -1); GreMovePointer(hdcScreen, -1, -1);
@ -235,7 +235,7 @@ int UserShowCursor(BOOL bShow)
} }
else else
{ {
if (CurInfo->ShowingCursor == 0) if (CurInfo->ShowingCursor == -1)
{ {
/*Show the pointer*/ /*Show the pointer*/
GreMovePointer(hdcScreen, gpsi->ptCursor.x, gpsi->ptCursor.y); GreMovePointer(hdcScreen, gpsi->ptCursor.x, gpsi->ptCursor.y);
@ -621,7 +621,7 @@ NtUserGetCursorInfo(
CurIcon = (PCURICON_OBJECT)CurInfo->CurrentCursorObject; CurIcon = (PCURICON_OBJECT)CurInfo->CurrentCursorObject;
SafeCi.cbSize = sizeof(CURSORINFO); SafeCi.cbSize = sizeof(CURSORINFO);
SafeCi.flags = ((CurInfo->ShowingCursor && CurIcon) ? CURSOR_SHOWING : 0); SafeCi.flags = ((CurIcon && CurInfo->ShowingCursor >= 0) ? CURSOR_SHOWING : 0);
SafeCi.hCursor = (CurIcon ? (HCURSOR)CurIcon->Self : (HCURSOR)0); SafeCi.hCursor = (CurIcon ? (HCURSOR)CurIcon->Self : (HCURSOR)0);
SafeCi.ptScreenPos = gpsi->ptCursor; SafeCi.ptScreenPos = gpsi->ptCursor;