aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2017-11-16 16:44:36 +0100
committerPierre Ossman <ossman@cendio.se>2017-11-17 08:06:30 +0100
commit387a41770ba5f0ee5b30b78b4c537de342064d9e (patch)
tree70aa2b0e7d24e2bf4da5c9963351aa94269f6be6 /common
parentb218ecd50ea6c49a00a0c17ab348aca5d497b695 (diff)
downloadtigervnc-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.cxx10
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()