libvncserver icon indicating copy to clipboard operation
libvncserver copied to clipboard

Show a server-side mouse cursor to clients that don't control it, fix multiple clients drawing cursors into framebuffer

Open VelorumS opened this issue 2 years ago • 2 comments

From TurboVNC.

When multiple viewers are sharing a single TurboVNC session, ordinarily it would be necessary for a viewer to disable remote cursor shape updates in order to see the pointer movements initiated by other viewers. This commit automates that by using server-side cursor rendering (drawing the cursor into the framebuffer, not using remote cursor shape updates) to send cursor updates to all viewers that aren't moving the pointer ("collaborators.") The viewer that is moving the pointer (the "pointer owner") receives remote cursor shape updates while it is moving the pointer, if it has elected to receive them.

This mimics the behavior of RealVNC.

Also fixes the case when multiple clients draw the cursor into framebuffer simultaneously. Uses rwlock for pthreads or a simple mutex otherwise. If the multi-client performance is important then maybe any locks there aren't the best solution.

VelorumS avatar Apr 20 '23 13:04 VelorumS

@VelorumS: Have you progressed on your PR?

Neustradamus avatar Nov 19 '25 22:11 Neustradamus

@Neustradamus there wasn't any review or comments.

VelorumS avatar Nov 20 '25 19:11 VelorumS