mirror of
https://github.com/reactos/reactos.git
synced 2024-07-05 12:15:46 +00:00
[WIN32K]
- Do not call UserSetCursor in MsqCleanupMessageQueue because it uses current thread queue instead of queue in cleanup (they can be different). See issue #6530 for more details. svn path=/trunk/; revision=54051
This commit is contained in:
parent
71f55db0d5
commit
dfb39c9849
|
@ -399,8 +399,6 @@ Win32kThreadCallback(struct _ETHREAD *Thread,
|
|||
/* Do now some process cleanup that requires a valid win32 thread */
|
||||
if(ptiCurrent->ppi->cThreads == 0)
|
||||
{
|
||||
UserSetCursor(NULL, TRUE);
|
||||
|
||||
/* Check if we have registered the user api hook */
|
||||
if(ptiCurrent->ppi == ppiUahServer)
|
||||
{
|
||||
|
|
|
@ -2094,9 +2094,19 @@ MsqCleanupMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue)
|
|||
{
|
||||
PCURICON_OBJECT pCursor = MessageQueue->CursorObject;
|
||||
|
||||
/* Change to another cursor if we going to dereference current one */
|
||||
/* Change to another cursor if we going to dereference current one
|
||||
Note: we can't use UserSetCursor because it uses current thread
|
||||
message queue instead of queue given for cleanup */
|
||||
if (IntGetSysCursorInfo()->CurrentCursorObject == pCursor)
|
||||
UserSetCursor(NULL, TRUE);
|
||||
{
|
||||
HDC hdcScreen;
|
||||
|
||||
/* Get the screen DC */
|
||||
hdcScreen = IntGetScreenDC();
|
||||
if (hdcScreen)
|
||||
GreMovePointer(hdcScreen, -1, -1);
|
||||
IntGetSysCursorInfo()->CurrentCursorObject = NULL;
|
||||
}
|
||||
|
||||
UserDereferenceObject(pCursor);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue