Skip to content

fix(wallpapers): resolve invisible transition animations#920

Merged
amnweb merged 4 commits into
mainfrom
fix/wallpaper-animation-dwm-bug
May 20, 2026
Merged

fix(wallpapers): resolve invisible transition animations#920
amnweb merged 4 commits into
mainfrom
fix/wallpaper-animation-dwm-bug

Conversation

@amnweb
Copy link
Copy Markdown
Owner

@amnweb amnweb commented May 19, 2026

Fixes #917

Resolves an issue where dynamic wallpaper animations would fail to display (become invisible) on specific Windows versions.

DWM refuses to composite a child window inside the desktop WorkerW layer if the window has the WS_EX_LAYERED flag active at the exact moment SetParent is called. This PR temporarily strips the WS_EX_LAYERED flag during the SetParent transition and immediately restores it. This safely bypasses the DWM bug while keeping Qt's opacity fade-in functionality working perfectly without any black flashes or blinks.

Also I have enabled Windows 10 support to test

amnweb added 2 commits May 19, 2026 03:41
…nager

- Move engine enable/disable logic from WallpaperEngine into WallpaperManager.set_wallpaper()
- Add finished signal to WallpaperEngine instead of calling WallpaperManager directly
- Remove engine param from ImageGallery, callers now use unified manager API
- Consolidate set_wallpaper and _commit_wallpaper into single function
- Fix duplicate _run_after_thread call in change_background
amnweb added 2 commits May 19, 2026 23:04
…scaling

- Divide WorkerW and monitor rects by devicePixelRatio so wallpapers render at the right position and size when Windows scaling is > 100%
- Use SmoothTransformation in all per-monitor scaling helpers for better visual quality
@amnweb amnweb merged commit 4b75e84 into main May 20, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug(wallpapers): Wallpaper Engine dynamic animations not working in v2.0.1

1 participant