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.
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()