This MR adds support for handling `wl_pointer` devices:
1. Handle enter/leave/(absolute) motion/button/axis events to allow users to interact with applications using such devices, e.g., a mouse.
2. Update the cursor image used for Wayland surfaces based on the Windows cursor bitmap data.
A few notes:
1. A single `wl_seat`/`wl_pointer` is supported for now.
2. Many of the input interactions require window management support that hasn't been implemented yet (e.g., popup positioning, resizing, max/fullscreen).
3. There is some potential for bad interactions between the input event dispatching mechanism and the `win32u` flushing logic for `window_surface` , which can lead to visual glitches. Although I don't think this is blocker for this MR, I would like to start a discussion about the problem and mitigation ideas in a [comment](https://gitlab.winehq.org/wine/wine/-/merge_requests/3686#note_438… below.
Thanks!
--
v2: winewayland.drv: Implement SetCursor using cursor bitmap data.
winewayland.drv: Handle pointer button and scroll events.
winewayland.drv: Handle pointer motion events.
winewayland.drv: Handle pointer focus events.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3686
These tests make the ddraw-d3d9 tests pass inside Xephyr with fvwm3 for me. fvwm3 still randomly fails in a lot of places if it is run on a real display. It also fails in Xephyr if I wiggle the mouse too much. Those two issues might even be related. A virtual X server should be enough for CI though.
fvwm2 has a lot of random failures even inside Xephyr or xf86-video-dummy. I will not attempt to fix them.
I tested the SW_SHOWMINNOACTIVE in patches 2 and 3 on Windows XP, Windows 11, the testbot, kwin, openbox. It seems to work without breaking any of those systems. With those things being flaky changes though I can never fully gurantee this though.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3746
This patch set is part of !3303
--
v2: winegstreamer: Create wg_muxer for media sink.
winegstreamer: Implement seeking query for wg_muxer sink pad.
winegstreamer: Introduce new wg_muxer struct.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3737