» home
» bugs
» git

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0000101 [litestep core] core major always 2009-11-08 19:12 2010-02-03 15:49
Reporter alur View Status public  
Assigned To
Priority none Resolution open  
Status feedback   Product Version
Summary 0000101: WM_SETTINGCHANGE is not sent when the wallpaper slideshow changes wallpaper in Windows 7.
Description 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.

case WM_SETTINGCHANGE:
    {
        if (wParam == SPI_SETDESKWALLPAPER)
        {
            RedrawWindow(hwnd, NULL, NULL, RDW_INVALIDATE | RDW_ERASE | RDW_UPDATENOW);
        }
        break;
    }

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.
Additional Information 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.
Attached Files

- Relationships

-  Notes
(0000263)
alur (developer)
2010-02-03 15:49

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.

- Issue History
Date Modified Username Field Change
2009-11-08 19:12 alur New Issue
2010-02-03 15:49 alur Note Added: 0000263


Copyright © 2000 - 2009 Mantis Group
Powered by Mantis Bugtracker