|Anonymous | Login | Signup for a new account||2020-02-25 10:50 PST|
|Main | My View | View Issues|
|Viewing Issue Simple Details|
|ID||Category||Severity||Reproducibility||Date Submitted||Last Update|
|0000101||[litestep core] core||major||always||2009-11-08 19:12||2010-02-03 15:49|
|Summary||0000101: WM_SETTINGCHANGE is not sent when the wallpaper slideshow changes wallpaper in Windows 7.|
In Windows 7, desktop modules won't repaint their main windows automatically when the wallpaper changes. Something like this is required to avoid the old wallpaper staying.
if (wParam == SPI_SETDESKWALLPAPER)
RedrawWindow(hwnd, NULL, NULL, RDW_INVALIDATE | RDW_ERASE | RDW_UPDATENOW);
However, if you use the integrated wallpaper slide show the wallpaper is changed without any WM_SETTINGCHANGE message being sent so the old wallpaper remains unless you recycle or reload the desktop module.
When explorer is running, it seems to send the WM_SETTINGCHANGE message with wParam SPI_SETDESKWALLPAPER twice after the wallpaper has been changed.
It should be noted that desktop icon modules (Clickonic, IconDesk, xDesktop) need to repaint their windows when the wallpaper changes as well.
|Tags||No tags attached.|
Actually, on closer inspection, it seems like Explorer doesn't send WM_SETTINGCHANGE. However, Shell_TrayWnd seems to receive WM_USER+346 when the wallpaper changes. LiteStep's Shell_TrayWnd receives nothing when the wallpaper changes.
Seeing as the wallpaper still changes (if you unload any desktop modules) I don't think it's necessary to resort to a timer.
|2009-11-08 19:12||alur||New Issue|
|2010-02-03 15:49||alur||Note Added: 0000263|
|Copyright © 2000 - 2009 Mantis Group|