-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LiSendMousePositionEvent with multiple host monitors #1
Comments
Thanks for reporting. I was able to reproduce the issue locally. However, it looks like it will need a fix in GeForce Experience. It also affects the official client on the Nvidia Shield, so I'm inclined to believe it's not just something I'm missing in the protocol. It looks like GFE is incorrectly projecting the client's coordinates on the virtual desktop space. It doesn't look like they're taking into account the monitor's position on the virtual desktop. The behavior I'm seeing makes it look like they're passing I'm not sure if they're actually using
from https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-mouseinput |
OK, I attached a debugger to nvstreamer.exe and didn't see any calls hitting my There are 2 HID-compliant mouse grandchild devices under the NVVHCI Enumerator in Device Manager. The first is the relative pointing device used by None of this is really relevant to their bug, but it was fun and worth documenting nonetheless. |
Thanks for looking into it. I was worried it was an nvida-side bug, but I don't have an official shield to test with to be sure. Also, thanks for the thorough explanation. It's interesting to hear how gamestream works under the hood. 😃 |
GeForce Experience 3.22.0.32 may have fixed this issue. Mouse pointer behaves correctly on moonlight-tv. |
Yep, can confirm this locally. Fixed in GFE 3.22 and RTX Experience 1.3. |
I started playing with this for touchscreen support on moonlight-embedded, but have run into some odd behavior when the host computer has multiple monitors. Instead of mapping the mouse position from the reference size to the monitor being streamed, the coordinate is being mapped to the entire area covered by all screens.
For example, if I have two screens (same resolution) side by side and I send a coordinate in the middle of the client's screen (referenceWidth / 2), the mouse cursor will be placed on the right edge of the host screen being streamed. However, moving past that point does not actually put the mouse cursor on the other monitor. This leads me to suspect it's not intentional behavior.
The text was updated successfully, but these errors were encountered: