diff options
author | Pierre Ossman <ossman@cendio.se> | 2017-11-16 16:44:36 +0100 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2017-11-17 08:06:30 +0100 |
commit | 387a41770ba5f0ee5b30b78b4c537de342064d9e (patch) | |
tree | 70aa2b0e7d24e2bf4da5c9963351aa94269f6be6 /common | |
parent | b218ecd50ea6c49a00a0c17ab348aca5d497b695 (diff) | |
download | tigervnc-387a41770ba5f0ee5b30b78b4c537de342064d9e.tar.gz tigervnc-387a41770ba5f0ee5b30b78b4c537de342064d9e.zip |
Fix bug where server cursor might disappear
We shouldn't unconditionally remove the server side cursor just
because the client supports client side cursors. We need to also
check that the client fulfills the other criteria for taking over
the cursor.
Diffstat (limited to 'common')
-rw-r--r-- | common/rfb/VNCSConnectionST.cxx | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/common/rfb/VNCSConnectionST.cxx b/common/rfb/VNCSConnectionST.cxx index 619b0a24..bd4bc366 100644 --- a/common/rfb/VNCSConnectionST.cxx +++ b/common/rfb/VNCSConnectionST.cxx @@ -834,12 +834,10 @@ void VNCSConnectionST::enableContinuousUpdates(bool enable, void VNCSConnectionST::supportsLocalCursor() { - if (cp.supportsLocalCursorWithAlpha || - cp.supportsLocalCursor || cp.supportsLocalXCursor) { - if (!damagedCursorRegion.is_empty()) - removeRenderedCursor = true; - setCursor(); - } + bool hasRenderedCursor = !damagedCursorRegion.is_empty(); + if (hasRenderedCursor && !needRenderedCursor()) + removeRenderedCursor = true; + setCursor(); } void VNCSConnectionST::supportsFence() |