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?rev=66968&r1=66967&r2=66968&view=diff
==============================================================================
--- 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++;


Reply via email to