If read_identity returns FALSE, it has already called clear_identity.
This is the same problem as in merge request !2970. Unfortunately I did not notice at first that the problem was present in two places.
--
v3: wusa: Zero out identity on error path in read_identity.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3013
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55047
Shrinking the clipping rect to make sure we do not ignore the grab causes some issues. Instead, pass the set_cursor flags to the WM_WINE_CLIPCURSOR message, and introduce a new fullscreen window clipping flag.
As described in the WineHQ bug, an alternative fix would be to keep the shrink but disable fullscreen grabs entirely when the option is disabled [*]. This would break the tests when the option is on but it is not the default. I think that this approach with a flag is better as it doesn't modify the clipping rect.
[*] I don't think they are doing anything but I'm maybe missing something. Maybe grabbing the cursor over the entire virtual screen is preventing the cursor from going over host dock bars or something like that?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3076
This also converts the opaque pointers passed across the PE->Unix interface to opaque types
represented as UINT64 which store the unix side pointer. This makes the thunking simpler and should
avoid anyone accidently dereferencing the unix pointer in the PE code.
This was tested with warcraft 3 (1.24, the last non-reforged release), and is consistent with the standard 32bit build. But since movies on warcraft 3 are broken in standard 32bit builds I could only test that that the gstreamer graph gets built up similarly and not verify the video playback. Id appreciate if someone knew of a working exercise of the gstreamer code.
--
v2: winegstreamer: Implement Wow64 entrypoints in the Unix library.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3075
This also converts the opaque pointers passed across the PE->Unix interface to opaque types
represented as UINT64 which store the unix side pointer. This makes the thunking simpler and should
avoid anyone accidently dereferencing the unix pointer in the PE code.
This was tested with warcraft 3 (1.24, the last non-reforged release), and is consistent with the standard 32bit build. But since movies on warcraft 3 are broken in standard 32bit builds I could only test that that the gstreamer graph gets built up similarly and not verify the video playback. Id appreciate if someone knew of a working exercise of the gstreamer code.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3075