Show a server-side mouse cursor to clients that don't control it, fix multiple clients drawing cursors into framebuffer#576
Open
VelorumS wants to merge 3 commits intoLibVNC:masterfrom
Open
Conversation
0f71305 to
6350715
Compare
added 3 commits
April 21, 2023 10:42
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.
6350715 to
ff139b4
Compare
|
@VelorumS: Have you progressed on your PR? |
Author
|
@Neustradamus there wasn't any review or comments. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.