https://bugs.winehq.org/show_bug.cgi?id=56149
--- Comment #4 from Gabriel Ivăncescu gabrielopcode@gmail.com --- Ok, my patch is actually wrong, there's something weirder at play here. Sorry about that. Adding Rémi Bernon to CC since he may know something.
The original seems to be "correct" in the sense that root_window is actually the virtual desktop in question, and the event is sent to the actual "root" window (i.e. DefaultRootWindow(display)). With my patch it actually becomes pretty much a no-op (requesting the actual root window to be fullscreen).
So the interesting bit is this: the virtual desktop is *already* fullscreen by that point and covering the taskbar. And setting its _NET_WM_STATE_FULLSCREEN actually makes it behind the taskbar, which I cannot understand why. It does still hide the decorations though. Any insights?
I'd expect a _NET_WM_STATE_FULLSCREEN window being set again to _NET_WM_STATE_FULLSCREEN to be a no-op, but clearly for some reason it puts the taskbar in front of it.
After reverting my commit, do you think adding some sort of check if the window is already _NET_WM_STATE_FULLSCREEN and avoid setting it in such case be a good solution?