[0.4.12] [NtUser] Workaround regressions CORE-15477, CORE-14979, CORE-15599, CORE...
authorJoachim Henze <Joachim.Henze@reactos.org>
Tue, 21 May 2019 20:51:45 +0000 (22:51 +0200)
committerJoachim Henze <Joachim.Henze@reactos.org>
Tue, 21 May 2019 20:51:45 +0000 (22:51 +0200)
Fixes 'multiple apps leaving the taskbar visible erroneously when switching into fullscreen.'
Please note that the problem with taskbar staying visible is only fixed for some, but not all apps (see CORE-11242 for examples).

This partially reverts commit 09ab5ea7ed2ab0e709ed2e8f8f9f6c3711b2ac7f (SVN r75407)
I applied this interim solution into 0.4.12RCs for the very first time and rls-tests still
have to prove it being free of obvious side-effects.
Theoretically we could still switch to a better solution at any time.
The workaround never was applied to master to date.

https://reactos.org/testman/compare.php?ids=67536,67539

win32ss/user/ntuser/display.c

index 6abe5c8..8032364 100644 (file)
@@ -855,10 +855,13 @@ UserChangeDisplaySettings(
         //IntHideDesktop(pdesk);
 
         /* Send WM_DISPLAYCHANGE to all toplevel windows */
-        UserSendNotifyMessage(HWND_BROADCAST,
-                              WM_DISPLAYCHANGE,
-                              gpsi->BitCount,
-                              MAKELONG(gpsi->aiSysMet[SM_CXSCREEN], gpsi->aiSysMet[SM_CYSCREEN]));
+        co_IntSendMessageTimeout(HWND_BROADCAST,
+                                 WM_DISPLAYCHANGE,
+                                 (WPARAM)ppdev->gdiinfo.cBitsPixel,
+                                 (LPARAM)(ppdev->gdiinfo.ulHorzRes + (ppdev->gdiinfo.ulVertRes << 16)),
+                                 SMTO_NORMAL,
+                                 100,
+                                 &ulResult);
 
         ERR("BitCount New %d Orig %d ChkNew %d\n",gpsi->BitCount,OrigBC,ppdev->gdiinfo.cBitsPixel);