В настоящее время я пишу библиотеку, которая может использоваться клиентским программным обеспечением wayland.Предполагается, что библиотека в основном не зависит от клиентского инструментария (в настоящее время только Qt, но другие инструментарии с поддержкой Wayland также должны иметь возможность использовать его).Для этого требуется только указатель wl_display
, передаваемый в процедуру инициализации, которая извлекается из инструментария GUI.После завершения инициализации библиотека должна работать без контакта с инструментарием, чтобы сделать его совместимым с несколькими инструментами.
Проблема возникает, когда моей библиотеке требуется пара глобальных прокси объектов (т. Е. * 1004).*).Библиотека использует пользовательский wl_registry
для привязки пользовательских прокси к требуемым глобальным объектам.Однако с точки зрения сервера все прокси-серверы для этих объектов эквивалентны.Когда события, содержащие прокси-объекты объекта, отправляются сервером, они могут содержать ссылку на прокси-сервер инструментария или библиотеки.Это приводит к проблемам, потому что нет простого способа их дифференцировать.Когда инструментарий получает такие события, он вслепую предполагает, что пользовательские данные прокси-сервера принадлежат инструментарию, и использует их, даже если полученный прокси-сервер принадлежит моей библиотеке.
Есть ли способ примирить такие несвязанныекод, или такое использование выходит за рамки библиотеки / протокола Wayland, и я должен изменить свое решение?