From 2b22160fb690a76247aa9bd0be3069ff43e8239f Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Wed, 24 Feb 2021 16:02:54 +0200 Subject: [PATCH] server: add wl_display getter for wl_global This can be useful if the compositor wants to call wl_global_destroy() with some delay but it doesn't have the wl_display object associated with the global, which is needed to get access to the event loop. Signed-off-by: Vlad Zahorodnii --- src/wayland-server-core.h | 3 +++ src/wayland-server.c | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/wayland-server-core.h b/src/wayland-server-core.h index 64d71696..cbc70c09 100644 --- a/src/wayland-server-core.h +++ b/src/wayland-server-core.h @@ -279,6 +279,9 @@ wl_display_set_global_filter(struct wl_display *display, const struct wl_interface * wl_global_get_interface(const struct wl_global *global); +struct wl_display * +wl_global_get_display(const struct wl_global *global); + void * wl_global_get_user_data(const struct wl_global *global); diff --git a/src/wayland-server.c b/src/wayland-server.c index 0ce5daf6..0120326e 100644 --- a/src/wayland-server.c +++ b/src/wayland-server.c @@ -1277,6 +1277,20 @@ wl_global_get_interface(const struct wl_global *global) return global->interface; } +/** Get the display object for the given global + * + * \param global The global object + * \return The display object the global is associated with. + * + * \memberof wl_global + * \since 1.20 + */ +WL_EXPORT struct wl_display * +wl_global_get_display(const struct wl_global *global) +{ + return global->display; +} + WL_EXPORT void * wl_global_get_user_data(const struct wl_global *global) {