Как показать изменения формы курсора с помощью libvncclient?

Я разрабатываю многопользовательский VNC-клиент, используя libvncclient (часть libvncserver) и Qt. Это было немного сложно, но, наконец, у меня приложение работает довольно хорошо, за исключением того, что оно не будет отображать изменения формы курсора с сервера. Я хотел бы преодолеть эту проблему, чтобы я мог поделиться этим программным проектом с миром, как я делаю с большинством других моих проектов.

Я попытался это сделать, чтобы libvncclient показать изменения формы курсора:

client->appData.useRemoteCursor = false;

и это не показывает изменения курсора в кадровом буфере. Затем я попытался обработать изменения курсора самостоятельно, используя:

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

и пока got_cursor_shape_change обратный вызов будет вызван, когда на сервере произошло изменение формы курсора, буфера для изображения курсора, rcSourceи буфер для маски курсора, rcMask, не были действительными изображениями.

Я провел поиск в Интернете для помощи по этой проблеме, но ресурсы помимо официальной документации довольно скудны. Я связался с разработчиками по этому вопросу, но они говорят, что то, что я пробовал, должно работать.

РЕДАКТИРОВАТЬ: Кроме того, другие средства просмотра, такие как TightVNC, TigerVNC, gtk-vnc и т. Д., Отображают изменения формы курсора с сервера, поэтому я знаю, что они отправляют изменения правильно.

У кого-нибудь есть какие-либо подсказки относительно того, что я должен попробовать?

Заранее спасибо. 🙂

0

Решение

Это решено.

Проблема заключалась в том, что на удаленной машине, с которой я тестировал, была установлена ​​очень старая версия TightVNC (2.0.x). После обновления (до 2.7.x) курсор удаленного компьютера становится видимым, и изменения формы происходят в моем средстве просмотра. Вот что работает:

client->appData.useRemoteCursor = false;

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]