diff --git a/wayland-client.c b/wayland-client.c index 3c977b28..e60d028f 100644 --- a/wayland-client.c +++ b/wayland-client.c @@ -64,6 +64,7 @@ struct wl_proxy { struct wl_object base; struct wl_display *display; struct wl_list listener_list; + void *user_data; }; struct wl_compositor { @@ -618,3 +619,15 @@ wl_surface_damage(struct wl_surface *surface, wl_proxy_marshal(&surface->proxy, WL_SURFACE_DAMAGE, x, y, width, height); } + +WL_EXPORT void +wl_surface_set_user_data(struct wl_surface *surface, void *user_data) +{ + surface->proxy.user_data = user_data; +} + +WL_EXPORT void * +wl_surface_get_user_data(struct wl_surface *surface) +{ + return surface->proxy.user_data; +} diff --git a/wayland-client.h b/wayland-client.h index cb2bd294..13b4776d 100644 --- a/wayland-client.h +++ b/wayland-client.h @@ -95,6 +95,9 @@ void wl_surface_copy(struct wl_surface *surface, int32_t dst_x, int32_t dst_y, void wl_surface_damage(struct wl_surface *surface, int32_t x, int32_t y, int32_t width, int32_t height); +void wl_surface_set_user_data(struct wl_surface *surface, void *user_data); +void *wl_surface_get_user_data(struct wl_surface *surface); + struct wl_output; struct wl_output_listener { void (*geometry)(void *data,