我正在使用libvncclient(libvncserver的一部分)和Qt开发一个多查看器VNC客户端。它有点具有挑战性,但我终于让应用程序工作得很好,除了它不会显示服务器上的光标形状变化。我想克服这个问题,所以我可以与世界分享这个软件项目,就像我对其他大多数项目一样。
我试过这个让libvncclient显示游标形状的变化:
client->appData.useRemoteCursor = false;
并且它不会在帧缓冲区中显示光标变化。接下来,我尝试使用以下方法处理光标更改:
client->appData.useRemoteCursor = true;
client->GotCursorShape = got_cursor_shape_change;
并且当在服务器上发生游标形状更改时将调用got_cursor_shape_change
回调,而游标图像的缓冲区rcSource
和游标掩码的缓冲区{{1} },是无效的图像。
我已经在互联网上搜索了这个问题的帮助,但除了官方文档之外的资源相当渺茫。 I contacted the developers about this issue,但是他们说我尝试过的东西应该有用。
编辑:此外,其他观众,如TightVNC,TigerVNC,gtk-vnc等都在显示服务器的光标形状变化,所以我知道它正确地发送了变化。
有没有人有任何关于我应该尝试的线索?
提前谢谢你。 : - )
答案 0 :(得分:0)
这已经解决。
问题是我正在测试的远程计算机上安装了一个非常旧版本的TightVNC(2.0.x)。更新后(至2.7.x),远程机器的光标可见,并且在我的查看器中发生形状变化。以下是工作原理:
client->appData.useRemoteCursor = false;