https://bugs.winehq.org/show_bug.cgi?id=40828
--- Comment #28 from Hamish Claxton hamishclaxton@gmail.com --- (In reply to Olivier F. R. Dierick from comment #23)
(In reply to Hamish Claxton from comment #12)
Created attachment 63178 [details] systray: Hide systray for fullscreen games
Completely rewritten, compares foreground window against desktop window. Handles borderless fullscreen modes.
Lines 788-790 are redundant with lines 939-941 in handle_systray(). That function will be called when the desktop receives the WM_PARENTNOTIFY, so sending the message is enough.
Actually these lines are there to serve as a double check, something I should have mentioned. Some games such as Dragon Age Inquisition and Project Eden exit fullscreen mode during a resolution change and therefore need a double check. There are also cases where without the double check, upon exiting, due to a double switch of resolutions, the systray gets drawn offscreen. As such I won't remove the double check from the code, but I will add a comment to justify.
Anyhow, with your recent patch, it seems my code is rather unnecessary, as yours seems to solve the issue in all the games I use for testing. The only difference is that when fullscreen mode exits on my patch, say going from fullscreen/borderless to windowed mode. The systray is drawn above the window - something of which I prefer personally.
I do agree though that your much simpler fix should be submitted upstream, though I am a bit confused as to what to do with mine as you say it should be used as an enhancement.