fix(input): Fix pointer sticking to screen edges during cursor movement#2117
fix(input): Fix pointer sticking to screen edges during cursor movement#2117rhessus wants to merge 1 commit intopop-os:masterfrom
Conversation
5a5177b to
6f43079
Compare
|
Mouse position clamping at output edges
So clamping to the right/bottom edge (−1.0) is applied only when that edge is the actual boundary of the output layout (no adjacent output on that side), avoiding the pointer getting stuck at the edge when multiple outputs are arranged side by side or stacked. |
2ce231c to
9512055
Compare
|
Can you post an example of an outputs.ron file that re-produces this bug? Outputs should be placed without any gaps between them, so I am failing to see how this would occur without explicitly messing with the configuration file. |
This PR is related to the change introduced in PR 1907 (#1907), which modified the mouse clamping on the right and bottom edges of the screen to use max - 1.0.
I am finishing resolving the issue and will provide full reproduction details. But to reproduce the issue, simply use two displays placed side by side and move the mouse very slowly from the left display to the right display (or from the top display to the bottom display). You will notice that the mouse cursor sticks to the boundary between the two displays. This does not occur if the mouse is moved very quickly (delta.x|y > 1.0). Correcting this issue is somewhat more complex than the changes I have made so far. I will return with an appropriate solution as soon as possible. |
c0761ca to
20c5343
Compare

This PR fixes the pointer behavior reported in the linked issue where the cursor becomes stuck on screen edges during normal movement when multiple displays are connected.
The problem can be observed when moving the mouse left ↔ right as well as up ↕ down. Under certain display arrangements, the pointer incorrectly clamps to output boundaries instead of transitioning smoothly, resulting in the cursor appearing to "stick" to the edges.
Fixes #2102