From: "Olivier F. R. Dierick" o.dierick@piezo-forte.be
Keep the z order of the taskbar when it changes visibility so that it doesn't get drawn over overlapping windows, including fullscreen ones. It prevents the taskbar from reappearing on top of everything when the virtual desktop changes size or when an icon is added to a previously hidden systray. This is consistent with XP and Vista default behavior. Will probably be enhanced in the future with an option to 'keep the taskbar on top of other windows', for newer Windows compatibility.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40828 Signed-off-by: Olivier F. R. Dierick o.dierick@piezo-forte.be --- There is another patch from Hamish Claxton in the queue that addresses the issue with a different approach. I think it's better suited as the enhancement described above, but it needs to be reworked beforehand. --- programs/explorer/systray.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/programs/explorer/systray.c b/programs/explorer/systray.c index 3d36f74..f9e6661 100644 --- a/programs/explorer/systray.c +++ b/programs/explorer/systray.c @@ -766,8 +766,8 @@ static void do_show_systray(void) tray_width = GetSystemMetrics( SM_CXSCREEN ); tray_height = max( icon_cy, size.cy ); start_button_width = size.cx; - SetWindowPos( tray_window, HWND_TOPMOST, 0, GetSystemMetrics( SM_CYSCREEN ) - tray_height, - tray_width, tray_height, SWP_NOACTIVATE | SWP_SHOWWINDOW ); + SetWindowPos( tray_window, 0, 0, GetSystemMetrics( SM_CYSCREEN ) - tray_height, + tray_width, tray_height, SWP_NOZORDER | SWP_NOACTIVATE | SWP_SHOWWINDOW ); sync_taskbar_buttons(); }