http://bugs.winehq.org/show_bug.cgi?id=58653
Bug ID: 58653 Summary: winewayland: Mouse pointer locking fails with extreme camera sensitivity in 3D applications when using fractional scaling on GNOME/Wayland Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winewayland Assignee: wine-bugs@winehq.org Reporter: winehq.extras599@passmail.net Distribution: ---
Created attachment 79230 --> http://bugs.winehq.org/attachment.cgi?id=79230 Demonstration of failed mouse lock and extreme sensitivity with 150% fractional scaling enabled.
When running a 3D application (in this case, Roblox Studio) using the winewayland driver, the mouse pointer fails to lock to the window when it should (e.g., holding right-click to pan the camera). This also causes the camera to move at an extremely high and uncontrollable speed.
This issue only occurs when fractional scaling is enabled in the host Linux desktop environment (e.g., 150% scaling on GNOME). The bug is not present when using integer scaling factors like 100% or 200%.
Changing the screen DPI setting within winecfg does not fix or mitigate the issue when fractional scaling is active.
Steps to Reproduce:
1. Use a Linux desktop environment on Wayland (e.g., GNOME on Fedora 42).
2. Enable fractional scaling in the display settings (e.g., 150%).
3. Run a 3D application that uses relative mouse motion and requires pointer locking (e.g., Roblox Studio).
4. In the application's 3D viewport, perform the action to lock the mouse and pan the camera (e.g., hold the right mouse button).
5. Move the mouse.
Actual Results: The mouse cursor does not lock or hide. It remains visible and can move outside the application window. Any small mouse movement causes the in-game camera to spin around at an uncontrollably high velocity.
Expected Results: The mouse cursor should lock (become confined to the window) and hide. Mouse movements should translate to smooth and controllable camera panning at a normal sensitivity. This expected behavior occurs correctly when system display scaling is set to 100% or 200%.
System Information:
OS: Fedora Linux 42
Kernel Version: 6.15.9-201.fc42.x86_64
Display Server: Wayland (GNOME)
CPU: AMD Ryzen 9 7940HS
GPU: AMD Radeon RX 7700S [Discrete] / AMD Radeon 780M [Integrated]
Memory: 27.20 GiB
Additional Notes: This bug was reproduced while running Roblox Studio via the Vinegar Flatpak project, which utilizes Wine. The issue appears to be independent of the application itself and points to a problem in how the winewayland driver handles pointer coordinates and locking events when the Wayland compositor is using a fractional scale factor.
http://bugs.winehq.org/show_bug.cgi?id=58653
--- Comment #1 from winehq.extras599@passmail.net --- Created attachment 79231 --> http://bugs.winehq.org/attachment.cgi?id=79231 Demonstration of correct mouse lock behavior after switching system display scaling to 100%.