Original patch description https://www.winehq.org/pipermail/wine-patches/2017-February/157574.html
winehq.org no longer provides the wine-patches archives, so it's necessary to dig into [web.archive.org](https://web.archive.org/web/20211011014926/https://www.winehq.org/pipermail/...):
https://web.archive.org/web/20211011014926/https://www.winehq.org/pipermail/...
https://web.archive.org/web/20211011014930/https://www.winehq.org/pipermail/...
===================================================================
Based on a patch by Dmitry Timoshkov.
## Signed-off-by: Sebastian Lackner sebastian@fds-team.de
Fixes https://bugs.winehq.org/show_bug.cgi?id=33943.
Battle.Net initially creates completely transparent popup windows and afterwards uses UpdateLayeredWindow without hdcSrc to let them fade in. Testing confirms that this works fine on Windows - on Wine however the original content is lost and no longer available. To avoid that, this patch stores the original content in the surface and uses _NET_WM_WINDOW_OPACITY to create a transparency effect. The same method is already used by SetLayeredWindowAttributes. If compositing is disabled, the window content will be visible immediately.
Dmitrys original patch used a different approach, and manually implemented the alpha blending in x11drv_surface_flush using additional buffers, however this shouldn't really be necessary (yet). We can still use it later if there is any benefit compared to using _NET_WM_WINDOW_OPACITY.
-- v2: winex11: Fix alpha blending in X11DRV_UpdateLayeredWindow.