[PATCH v2 1/6] d3d8/tests: Test for window changes when it's not active.

Stefan Dösinger stefandoesinger at gmail.com
Tue Jan 4 07:53:34 CST 2022


Am Montag, 3. Jänner 2022, 15:08:07 CET schrieb Gabriel Ivăncescu:
> +    ret = SetForegroundWindow(GetDesktopWindow());
> +    ok(ret, "Failed to set foreground window.\n");
> +
> +    device_desc.device_window = device_window;
> +    device_desc.flags = CREATE_DEVICE_FULLSCREEN;
> +    device = create_device(d3d8, focus_window, &device_desc);
> +    ok(!!device, "Failed to create a D3D device.\n");
> +    ShowWindow(device_window, SW_SHOWNOACTIVATE);
> +
> +    /* 32-bit tests ran under Windows 8 and 10 testbots have pretty
> +       inconsistent behavior but topmost is set even when inactive. */
> +    style = GetWindowLongA(device_window, GWL_EXSTYLE);

Is it a matter of the active window, foreground window or the current thread 
being foreground? The active Window (Get/SetActiveWindow) is a per-thread 
property and the foreground window the desktop-global properly. Afaiu a window 
can be active for the current thread without being the foreground window.

One way to test this would be to create a third window on the same thread and 
make it the foreground window instead of the desktop window. I don't remember 
exactly what happens when you call SetForegroundWindow(desktop); 
SetActiveWindow(device_window). I assume it makes the test behave differently, 
which is why you use SW_SHOWNOACTIVATE.

If what I wrote is complete junk ignore me. It's been a few years since I 
worked on the alt-tab stuff...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20220104/c985ebc4/attachment.sig>


More information about the wine-devel mailing list