[NtUser] Fix setting screen size.
authorjimtabor <james.tabor@reactos.org>
Tue, 21 May 2019 21:24:52 +0000 (16:24 -0500)
committerjimtabor <james.tabor@reactos.org>
Tue, 21 May 2019 21:24:52 +0000 (16:24 -0500)
Back set change size to the server information metrics.

Fixes CORE-15477. Still more work is required.

Patch based on reactosfanboy original patch.

win32ss/user/ntuser/display.c

index 6abe5c8..25b1f94 100644 (file)
@@ -830,6 +830,8 @@ UserChangeDisplaySettings(
             gpsi->Planes      = ppdev->gdiinfo.cPlanes;
             gpsi->BitsPixel   = ppdev->gdiinfo.cBitsPixel;
             gpsi->BitCount    = gpsi->Planes * gpsi->BitsPixel;
             gpsi->Planes      = ppdev->gdiinfo.cPlanes;
             gpsi->BitsPixel   = ppdev->gdiinfo.cBitsPixel;
             gpsi->BitCount    = gpsi->Planes * gpsi->BitsPixel;
+            gpsi->aiSysMet[SM_CXSCREEN] = ppdev->gdiinfo.ulHorzRes;
+            gpsi->aiSysMet[SM_CYSCREEN] = ppdev->gdiinfo.ulVertRes;
             if (ppdev->gdiinfo.flRaster & RC_PALETTE)
             {
                 gpsi->PUSIFlags |= PUSIF_PALETTEDISPLAY;
             if (ppdev->gdiinfo.flRaster & RC_PALETTE)
             {
                 gpsi->PUSIFlags |= PUSIF_PALETTEDISPLAY;
@@ -855,10 +857,13 @@ UserChangeDisplaySettings(
         //IntHideDesktop(pdesk);
 
         /* Send WM_DISPLAYCHANGE to all toplevel windows */
         //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,
+                                  gpsi->BitCount,
+                                  MAKELONG(gpsi->aiSysMet[SM_CXSCREEN], gpsi->aiSysMet[SM_CYSCREEN]),
+                                  SMTO_NORMAL,
+                                  100,
+                                  &ulResult );
 
         ERR("BitCount New %d Orig %d ChkNew %d\n",gpsi->BitCount,OrigBC,ppdev->gdiinfo.cBitsPixel);
 
 
         ERR("BitCount New %d Orig %d ChkNew %d\n",gpsi->BitCount,OrigBC,ppdev->gdiinfo.cBitsPixel);