summaryrefslogtreecommitdiff
path: root/alf/alflayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'alf/alflayout.cpp')
-rw-r--r--alf/alflayout.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/alf/alflayout.cpp b/alf/alflayout.cpp
index 745b303..ba2854b 100644
--- a/alf/alflayout.cpp
+++ b/alf/alflayout.cpp
@@ -1056,6 +1056,28 @@ ALF_Layout_HandleMessage(ALFLayout *layout, HWND hwnd, UINT msg, WPARAM wparam,
return TRUE;
}
+ if (msg == WM_SYSCOLORCHANGE) {
+ // forward to children
+ ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, c) {
+ SendMessage(c->hwnd, WM_SYSCOLORCHANGE, wparam, lparam);
+ }
+
+ return FALSE;
+ }
+
+ if (msg == WM_SETTINGCHANGE) {
+ // Controls could technically figure out if their layout parameters
+ // have changed, but that is not easy so nobody would bother anyway.
+ ALF_Layout_Invalidate(layout, hwnd);
+
+ // forward to children
+ ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, c) {
+ SendMessage(c->hwnd, WM_SETTINGCHANGE, wparam, lparam);
+ }
+
+ return FALSE;
+ }
+
if (msg == ALF_WM_SETBGCOLOR) {
*pRet = 1;
if (layout->bgcolor == (ALFColor)lparam)