Skip to content

Commit 9bee914

Browse files
author
Rafal Harabien
committed
[EXPLORER]
* Properly support WM_SYSCOLORCHANGE svn path=/trunk/; revision=51524
1 parent 0bbfb26 commit 9bee914

File tree

5 files changed

+43
-4
lines changed

5 files changed

+43
-4
lines changed

reactos/base/shell/explorer/desktop/desktop.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -464,11 +464,12 @@ LRESULT DesktopWindow::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
464464
goto def;
465465

466466
case WM_SYSCOLORCHANGE:
467-
// redraw background window
468-
InvalidateRect(g_Globals._hwndShellView, NULL, TRUE);
467+
// redraw background window - it's done by system
468+
//InvalidateRect(g_Globals._hwndShellView, NULL, TRUE);
469469

470-
// forward message to shell view window to redraw icon backgrounds
471-
SendMessage(g_Globals._hwndShellView, WM_SYSCOLORCHANGE, wparam, lparam);
470+
// forward message to common controls
471+
SendMessage(g_Globals._hwndShellView, WM_SYSCOLORCHANGE, 0, 0);
472+
SendMessage(_desktopBar, WM_SYSCOLORCHANGE, 0, 0);OutputDebugStringA("WM_SYSCOLORCHANGE desktop\n");
472473
break;
473474

474475
default: def:

reactos/base/shell/explorer/shell/mainframe.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,11 @@ bool MainFrameBase::ProcessMessage(UINT nmsg, WPARAM wparam, LPARAM lparam, LRES
372372
SendMessage(_hstatusbar, SB_SETTEXT, 0, lparam);
373373
break;
374374

375+
case WM_SYSCOLORCHANGE:
376+
SendMessage(_hwndrebar, WM_SYSCOLORCHANGE, 0, 0);
377+
SendMessage(_htoolbar, WM_SYSCOLORCHANGE, 0, 0);
378+
break;
379+
375380
default:
376381
return false;
377382
}
@@ -993,6 +998,20 @@ LRESULT MDIMainFrame::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
993998
}
994999
return TRUE;} // success
9951000

1001+
case WM_SYSCOLORCHANGE: {
1002+
LRESULT res;
1003+
HWND hChild;
1004+
1005+
/* Forward WM_SYSCOLORCHANGE to common controls */
1006+
SendMessage(_hextrabar, WM_SYSCOLORCHANGE, 0, 0);
1007+
SendMessage(_hdrivebar, WM_SYSCOLORCHANGE, 0, 0);
1008+
1009+
for(hChild = GetNextWindow(_hmdiclient,GW_CHILD); hChild; hChild = GetNextWindow(hChild, GW_HWNDNEXT))
1010+
SendMessage(hChild, WM_SYSCOLORCHANGE, 0, 0);
1011+
1012+
super::ProcessMessage(nmsg, wparam, lparam, &res);
1013+
break; }
1014+
9961015
default: {
9971016
LRESULT res;
9981017

reactos/base/shell/explorer/shell/shellbrowser.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,12 @@ LRESULT MDIShellBrowserChild::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
701701
}
702702
return TRUE;}
703703

704+
case WM_SYSCOLORCHANGE:
705+
/* Forward WM_SYSCOLORCHANGE to common controls */
706+
SendMessage(_left_hwnd, WM_SYSCOLORCHANGE, 0, 0);
707+
SendMessage(_right_hwnd, WM_SYSCOLORCHANGE, 0, 0);
708+
break;
709+
704710
default:
705711
return super::WndProc(nmsg, wparam, lparam);
706712
}

reactos/base/shell/explorer/taskbar/desktopbar.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,15 @@ LRESULT DesktopBar::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
345345
case PM_GET_NOTIFYAREA:
346346
return (LRESULT)(HWND)_hwndNotify;
347347

348+
case WM_SYSCOLORCHANGE:OutputDebugStringA("WM_SYSCOLORCHANGE desktopbar\n");
349+
/* Forward WM_SYSCOLORCHANGE to common controls */
350+
#ifndef _NO_REBAR
351+
SendMessage(_hwndrebar, WM_SYSCOLORCHANGE, 0, 0);
352+
#endif
353+
SendMessage(_hwndQuickLaunch, WM_SYSCOLORCHANGE, 0, 0);
354+
SendMessage(_hwndTaskBar, WM_SYSCOLORCHANGE, 0, 0);
355+
break;
356+
348357
default: def:
349358
return super::WndProc(nmsg, wparam, lparam);
350359
}

reactos/base/shell/explorer/taskbar/taskbar.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,10 @@ LRESULT TaskBar::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
202202
case PM_GET_LAST_ACTIVE:
203203
return (LRESULT)(HWND)_last_foreground_wnd;
204204

205+
case WM_SYSCOLORCHANGE:
206+
SendMessage(_htoolbar, WM_SYSCOLORCHANGE, 0, 0);
207+
break;
208+
205209
default: def:
206210
if (nmsg == WM_SHELLHOOK) {
207211
switch(wparam) {

0 commit comments

Comments
 (0)