[NTUSER] Fix regression CORE-11828
authorJoachim Henze <Joachim.Henze@reactos.org>
Sun, 23 Feb 2020 12:55:27 +0000 (13:55 +0100)
committerJoachim Henze <Joachim.Henze@reactos.org>
Sun, 23 Feb 2020 12:56:05 +0000 (13:56 +0100)
Fixes symptom "mouse pointer vanishes when closing
applications via x in title-bar"

The bug in WIN32SS was unhidden by SVN r65496 == git
5c1a8109c84ed0aefdac2488ff666070a7ae52f6
, when we introduced explorer_new. The old explorer
had a workaround built within.

Many thanks to patches author James Tabor.
I intend to backport into 0.4.13RC as well.

win32ss/user/ntuser/main.c

index 95ab584..be31889 100644 (file)
@@ -420,6 +420,16 @@ UserDeleteW32Thread(PTHREADINFO pti)
    ExFreePoolWithTag(pti, USERTAG_THREADINFO);
 
    IntDereferenceProcessInfo(ppi);
+
+   {
+      // Find another queue for mouse cursor.
+      MSG msg;
+      msg.message = WM_MOUSEMOVE;
+      msg.wParam = UserGetMouseButtonsState();
+      msg.lParam = MAKELPARAM(gpsi->ptCursor.x, gpsi->ptCursor.y);
+      msg.pt = gpsi->ptCursor;
+      co_MsqInsertMouseMessage(&msg, 0, 0, TRUE);
+   }
 }
 
 NTSTATUS