[PATCH v6 3/6] ddraw: Remove topmost style when going from exclusive mode to normal.

Stefan Dösinger stefandoesinger at gmail.com
Thu Jan 13 13:47:00 CST 2022



> Am 13.01.2022 um 20:49 schrieb Gabriel Ivăncescu <gabrielopcode at gmail.com>:
> 
>     if (!(cooplevel & DDSCL_EXCLUSIVE) && (ddraw->cooperative_level & DDSCL_EXCLUSIVE))
>     {
> +        if (!(cooplevel & DDSCL_NOWINDOWCHANGES))
> +            SetWindowPos(window, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
> +
>         if (restore_mode_on_normal && FAILED(ddraw7_RestoreDisplayMode(&ddraw->IDirectDraw7_iface)))

So here comes one more thought: Wouldn't this fit better in the

    if ((ddraw->cooperative_level & DDSCL_EXCLUSIVE)
            && (window != ddraw->dest_window || !(cooplevel & DDSCL_EXCLUSIVE)))
        wined3d_device_release_focus_window(ddraw->wined3d_device);

Part below?

I am not entirely sure myself, I am trying to trace where exactly the TOPMOST Z order change is done. Maybe it is worth checking what happens on an exclusive -> exclusive switch with different windows. You'd expect the old window to lose topmost and the new one to gain it, but considering how broken ddraw is I wouldn't be surprised if both or neither end up topmost.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Message signed with OpenPGP
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20220113/5e1cb01a/attachment.sig>


More information about the wine-devel mailing list