Author: hbelusca
Date: Sat Jun  4 23:34:46 2016
New Revision: 71525

URL: http://svn.reactos.org/svn/reactos?rev=71525&view=rev
Log:
[SHELL32]
- Pass indistinctly WM_SYSCOLORCHANGE and WM_SETTINGCHANGE messages sent to the 
shell progman window, down to its children windows (SHELLDLL_DefView and its 
associated ListView), as shown by tracking windows messages on Win2k3.
- If we receive a WM_SETTINGCHANGE with wParam == SPI_SETWORKAREA, i.e. the 
desktop working area was modified, we need to resize the underlying DefView, as 
shown by tracking windows messages on Win2k3. For the moment we implement 
support for only the primary monitor.
CORE-11375 #resolve
CORE-5618 #resolve
CORE-5620

Modified:
    trunk/reactos/dll/win32/shell32/shelldesktop/CDesktopBrowser.cpp

Modified: trunk/reactos/dll/win32/shell32/shelldesktop/CDesktopBrowser.cpp
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shelldesktop/CDesktopBrowser.cpp?rev=71525&r1=71524&r2=71525&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/shelldesktop/CDesktopBrowser.cpp    
[iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shelldesktop/CDesktopBrowser.cpp    
[iso-8859-1] Sat Jun  4 23:34:46 2016
@@ -476,16 +476,29 @@
             case WM_SYSCOLORCHANGE:
             case WM_SETTINGCHANGE:
             {
-                if (uMsg == WM_SYSCOLORCHANGE || wParam == 
SPI_SETDESKWALLPAPER || wParam == 0)
+                if (pThis->hWndShellView != NULL)
                 {
-                    if (pThis->hWndShellView != NULL)
-                    {
-                        /* Forward the message */
-                        SendMessageW(pThis->hWndShellView,
-                                     uMsg,
-                                     wParam,
-                                     lParam);
-                    }
+                    /* Forward the message */
+                    SendMessageW(pThis->hWndShellView,
+                                 uMsg,
+                                 wParam,
+                                 lParam);
+                }
+
+                if (uMsg == WM_SETTINGCHANGE && wParam == SPI_SETWORKAREA &&
+                    pThis->hWndShellView != NULL)
+                {
+                    RECT rcWorkArea;
+
+                    // FIXME: Add support for multi-monitor!
+                    SystemParametersInfoW(SPI_GETWORKAREA,
+                                          0, &rcWorkArea, 0);
+
+                    SetWindowPos(pThis->hWndShellView, NULL,
+                                 rcWorkArea.left, rcWorkArea.top,
+                                 rcWorkArea.right - rcWorkArea.left,
+                                 rcWorkArea.bottom - rcWorkArea.top,
+                                 SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER | 
SWP_NOOWNERZORDER);
                 }
                 break;
             }


Reply via email to