https://bugs.winehq.org/show_bug.cgi?id=40828
--- Comment #19 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- I have a feeling of deja-vu. I'll not fight over which patch is better.
I tested my patch with different mixes of Aliens versus Predator Classic 2000 (for the resolution switching), Steam (for maximizing window/its systray icon), notepad (to cover the taskbar) and taskmgr(for its systray icon), and I can confirm that my patch keeps the taskbar from covering anything.
I think it is an undesired side effect of do_show_systray() to push the taskbar to the top of the z order. The few events that trigger a call to do_show_systray() don't require it to be pushed on top of the z order. They are: - show_icon() → when an icon is added to the systray; - tray_wndproc() case WM_DISPLAYCHANGE → when resolution changes; - initialize_systray() → At the virtual desktop creation; There is no reason to put the taskbar on top of other window in any of these events.
Adding an option to put the taskbar 'always on top' would need other design changes outside the scope of this bug (window create/move/maximize would have to take the taskbar area into account, this is not implemented AFAICT).