--
v2: user.exe: Rename SetDesktopWallPaper to SetDesktopWallpaper.
user32: Correct capitalization of SetDeskWallpaper.
user.exe: Move SetDeskWallPaper from winuser.h to user_private.h.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4629
Not known to occur anywhere, but it is a regression from release 1.7. We need a test for SV_ClipDistance in a pixel shader, but it's a bit late to add that before the release.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/512
This MR implements mouselook, which requires support for ClipCursor and relative motion events. The latter we can implement directly without using `SetCursorPos` for which no Wayland protocol exists at the moment.
1. Implement setting the foreground window, as this is required for clipping to work properly (i.e., for the ClipCursor driver callback to be called in the proper process/thread, see commit (2)). We can't unconditionally set the foreground window on keyboard focus, since compositors are eager to give the focus and some windows strongly dislike that (see https://gitlab.winehq.org/wine/wine/-/merge_requests/4102#note_51733). This MR borrows the "managed" window concept from WineX11 to detect windows that we shouldn't allow the compositor to manage, and avoids setting such windows as the foreground on keyboard focus.
2. Implement cursor clipping using the pointer-constraints protocol.
3. Switch to emitting relative motion events using the relative-pointer protocol when the cursor is not visible.
---
4. Finally, a potential fix for an issue I have been seeing where apps may transiently lose the active status (see commit message for more) as a result of the foreground state changes in this MR, which has undesirable side-effects. I have included this here for MR completeness/correctness, but it can be moved to a subsequent MR if preferred.
Note: the velocity of relative motion events when scaling is involved is somewhat inconsistent among Wayland compositors.
Thanks!
--
v3: win32u: Don't deactivate the target thread when setting the foreground window.
winewayland.drv: Prefer to lock the pointer if the confine area is small.
winewayland.drv: Implement relative mouse motion.
winewayland.drv: Implement ClipCursor.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4593