如何使用 libvncclient 显示光标形状变化?

How to show cursor shape changes with libvncclient?

我正在使用 libvncclient(libvncserver 的一部分)和 Qt 开发多查看器 VNC 客户端。这有点挑战,但我终于让应用程序运行得相当好,除了它不会显示来自服务器的光标形状变化。我想克服这个问题,这样我就可以与全世界分享这个软件项目,就像我对其他大多数项目所做的那样。

我试过这个让 libvncclient 显示光标形状变化:

client->appData.useRemoteCursor = false;

并且不显示帧缓冲区中的光标更改。接下来,我尝试自己处理光标更改,使用:

client->appData.useRemoteCursor = true;
client->GotCursorShape = got_cursor_shape_change;

并且当服务器上发生光标形状更改时将调用 got_cursor_shape_change 回调,光标图像的缓冲区,rcSource,以及光标掩码的缓冲区,rcMask,不是有效图像。

我已经在互联网上搜索过这个问题的帮助,但是除了官方文档之外的资源非常少。 I contacted the developers about this issue,但他们说我试过的应该有效。

编辑:另外,其他查看器,如 TightVNC、TigerVNC、gtk-vnc 等,都显示来自服务器的光标形状变化,所以我知道它正在正确发送变化。

有人知道我应该尝试什么吗?

提前谢谢你。 :-)

已解决。

问题是我正在测试的远程机器上安装了一个非常旧版本的 TightVNC (2.0.x)。更新后(至 2.7.x),远程计算机的光标可见,并且在我的查看器中发生形状变化。以下是有效的:

client->appData.useRemoteCursor = false;