client: Add method to get display for a given proxy

This can be useful for additional validation purposes when handling
proxies. This is similar to existing server side API
wl_global_get_display.

Signed-off-by: David Edmundson <david@davidedmundson.co.uk>
This commit is contained in:
David Edmundson 2023-05-17 12:03:32 +03:00 committed by David Edmundson
parent 379a6f6759
commit edb943dc64
3 changed files with 19 additions and 0 deletions

View File

@ -219,6 +219,9 @@ wl_proxy_get_tag(struct wl_proxy *proxy);
const char * const char *
wl_proxy_get_class(struct wl_proxy *proxy); wl_proxy_get_class(struct wl_proxy *proxy);
struct wl_display *
wl_proxy_get_display(struct wl_proxy *proxy);
void void
wl_proxy_set_queue(struct wl_proxy *proxy, struct wl_event_queue *queue); wl_proxy_set_queue(struct wl_proxy *proxy, struct wl_event_queue *queue);

View File

@ -2338,6 +2338,20 @@ wl_proxy_get_class(struct wl_proxy *proxy)
return proxy->object.interface->name; return proxy->object.interface->name;
} }
/** Get the display of a proxy object
*
* \param proxy The proxy object
* \return The wl_display the proxy is associated with
*
* \memberof wl_proxy
* \since 1.23
*/
WL_EXPORT struct wl_display *
wl_proxy_get_display(struct wl_proxy *proxy)
{
return proxy->display;
}
/** Assign a proxy to an event queue /** Assign a proxy to an event queue
* *
* \param proxy The proxy object * \param proxy The proxy object

View File

@ -118,6 +118,8 @@ TEST(proxy_tag)
wl_proxy_set_tag((struct wl_proxy *) client.callback_b, wl_proxy_set_tag((struct wl_proxy *) client.callback_b,
&tag_b); &tag_b);
assert(wl_proxy_get_display((struct wl_proxy *) client.callback_b) == client.display);
wl_display_flush(client.display); wl_display_flush(client.display);
while (server.sync_count < 2) { while (server.sync_count < 2) {