Author: jimtabor Date: Sun Mar 29 16:25:50 2015 New Revision: 66968
URL: http://svn.reactos.org/svn/reactos?rev=66968&view=rev Log: [NtUser] - Fix the transfer of a global cursor while using ATI. See CORE-9436.
Modified: trunk/reactos/win32ss/user/ntuser/input.c
Modified: trunk/reactos/win32ss/user/ntuser/input.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/input.c... ============================================================================== --- trunk/reactos/win32ss/user/ntuser/input.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/input.c [iso-8859-1] Sun Mar 29 16:25:50 2015 @@ -523,8 +523,15 @@
MsqDestroyMessageQueue(ptiFrom);
+ if (CurIcon) + { + // Could be global. Keep it above the water line! + UserReferenceObject(CurIcon); + } + if (CurIcon && UserObjectInDestroy(UserHMGetHandle(CurIcon))) { + UserDereferenceObject(CurIcon); CurIcon = NULL; }
@@ -533,8 +540,8 @@ // Pass cursor From if To is null. Pass test_SetCursor parent_id == current pti ID. if (CurIcon && ptiTo->MessageQueue->CursorObject == NULL) { + ERR("ptiTo receiving ptiFrom Cursor\n"); ptiTo->MessageQueue->CursorObject = CurIcon; - UserReferenceObject(CurIcon); }
ptiFrom->MessageQueue->cThreads++;