From: Paul Gofman pgofman@codeweavers.com
--- programs/explorer/systray.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/programs/explorer/systray.c b/programs/explorer/systray.c index 9ae7e1698c9..9d5d2eac8bf 100644 --- a/programs/explorer/systray.c +++ b/programs/explorer/systray.c @@ -1110,6 +1110,18 @@ static LRESULT WINAPI shell_traywnd_proc( HWND hwnd, UINT msg, WPARAM wparam, LP else do_show_systray(); break;
+ case WM_WINDOWPOSCHANGING: + { + WINDOWPOS *p = (WINDOWPOS *)lparam; + + if (p->flags & SWP_SHOWWINDOW && (!show_systray || (!nb_displayed && !enable_shell))) + { + TRACE( "WM_WINDOWPOSCHANGING clearing SWP_SHOWWINDOW.\n" ); + p->flags &= ~SWP_SHOWWINDOW; + } + break; + } + case WM_MOVE: update_systray_balloon_position(); break;
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=149283
Your paranoid android.
=== debian11 (build log) ===
../wine/programs/explorer/systray.c:1117:79: error: ‘enable_shell’ undeclared (first use in this function) Task: The win32 Wine build failed
=== debian11b (build log) ===
../wine/programs/explorer/systray.c:1117:79: error: ‘enable_shell’ undeclared (first use in this function) Task: The wow64 Wine build failed
Fixes Star Wars: Knight of The old Republic not working in fullscreen mode (since last year systray changes).
SWKOTOR has a big deal to "Shell_TrayWnd" for some reason. It finds tray window with FindWindow() and then at certain moments (during video / game transitions at start, when alt-tabbing in) may disable it with EnableWindow() / hide with ShowWindow and then restore that: enable back and show.
With Wine-specific popup shell tray window not bound to taskbar popping up visible tray window results in the game loosing focus and minimizing itself, without possibility to restore window as the process repeats then. Avoiding focus loss in some other way still leave systray window visible and on top.