There were two major issues:
- RDP uses MOUSE_MOVE_ABSOLUTE for its input events, and the
implementation of this was incorrect. Although poorly documented,
the values actually range from 0-65535 and represent monitor positions,
instead of being positions beforehand. The equally poorly documented
MOUSE_VIRTUAL_DESKTOP flag specifies whether or not to use the
SCREEN or VIRTUALSCREEN system metrics.
- Using `SetCursor(NULL)` causes `SetCursorPos` to behave incorrectly
over RDP; it doesn't actually move it on the connected machine.
This has been fixed by creating an invisible cursor, which does
get moved correctly.
Aside from that, the center of the window is now cached and the cursor
test now supports pressing M to move the cursor to the center.
Fixes#1276.