Martin Fuchs schrieb:
Just fixed the problem in Explorer - the shell
background will now be
refreshed at system color changes.
That's great. Thanks. I couldn't test it yet, becaue explorer won't
start in current trunk. (I think userinit does not complete, because
with my code syscolors are no longer loaded from the registry)
But I guess it will at least let the new color be applied instantly.
Q: I added SendSysColorChangeMessage() to win32k wich sends
WM_SYSCOLORCHANGE to *all* windows after setting new syscolors. Is that
the way it should be? Or should the message be passed to child windows
by the windows itself (in DefWindowProc)?
But it will probably not help to use the correct SysColorBrush on
startup, wich was the thing I stumbled upon.
It seems that NtUserPaintDesktop is called several times (15+, but not
really sure about that) before userinit (Does that cause the heavy
redraw of the text in the hardware detection window on startup?). And on
userinit SysColors[COLOR_BACKGROUND] is loaded correctly from registry
(before explorer.exe is loaded), but NtUserPaintDesktop won't use the
correct SysColorBrush, although CreateSysColorObjects() is called at the
beginning.
I think CreateSysColorObjects might not work correctly.But I can't
figure out why.If noone has a tip for me, I'll go on trying to find out,
hopefully DBG=1 boots now and explorer will start again soon.
Greetings,
Timo