Skip to content

RD-API-Server v1.6.2

Choose a tag to compare

@TheJakeBraun TheJakeBraun released this 17 Aug 21:03
· 17 commits to main since this release

Fixes clicks landing away from the pointer, and adds two ways to see the mapping.

A click lands where the pointer is drawn

"I can't seem to click in the correct spot compared to the shown mouse."

Two code paths derived the same relationship independently:

How it mapped
Drawing the peer's pointer position × (video.width / display.width) — measured
Sending a click localX ÷ DisplayInfo.scale — assumed

Those are inverses only when scale happens to equal display.width / video.width. Nothing enforced that, and when they differed the pointer was drawn in one place while the click arrived in another — with nothing visible to explain the gap.

Input is now derived as the exact inverse of the drawing, which makes disagreement structurally impossible: wherever the remote pointer sits under yours, a click there arrives there. It also removes any need to interpret what scale means on a given platform, and collapses to a plain offset when the video and the display report the same dimensions — the common case, which is unchanged and pinned by its own test.

Two ways to see it

A remote cursor toggle in the session toolbar draws the peer's own pointer alongside yours. They should sit on top of each other; if they ever do not, that is now visible rather than something to infer from where clicks land.

The pointer mapping appears in the statistics overlay (the Stats button):

pointer  video 1280,800 -> peer 640,400
display  1280x800 at 0,0 · video 2560x1600 · scale 2

That is what "something is off" looks like once it is a number: the display and the video disagree by a factor, and the mapping follows the measured one.

Upgrading

docker compose pull && docker compose up -d

Nothing else.

Image

ghcr.io/gigaionllc/rustdesk-api-server:1.6.2

Multi-architecture (AMD64/ARM64), digest sha256:f3ee79d76afaacd31992b11a02a58b1418844c4cc7e30fb9336acbe410832fb3. The latest, 1 and 1.6 tags point at the same manifest.

Verification

699 PHP tests, 259 web-client unit tests, 18 browser tests, Pint and PHPStan.

The inverse relationship is pinned directly: a point is walked through the input mapping and back through the drawing mapping, on a display whose scale deliberately disagrees with the measured ratio, and must return to the pixel it started from. The common case is pinned separately, so the fix cannot introduce an offset into deployments that were already correct.

Not verified against a live peer. The test machine available here is not currently sending video, so the mapping was checked by construction and in tests rather than by clicking on a real remote desktop. If a click still misses after upgrading, the two new readouts are what to send: the pointer line names both coordinate spaces and the ratio between them.


Full notes: docs/releases/v1.6.2.md

RD-API-Server is an independent, third-party, open-source project. It is not affiliated with, endorsed by, or sponsored by RustDesk or Purslane Ltd.