summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2009-09-18 09:49:21 -0400
committerKristian Høgsberg <krh@redhat.com>2009-09-18 17:05:50 -0400
commitecf65fe0411403d57d6d2418782bd741b6d9e034 (patch)
treefba5c99720e45c9d6701b69a9475209dbda52985
parent59fa346ac9a5a3244af1aae0d13bd3d56f84c4b8 (diff)
downloadwayland-ecf65fe0411403d57d6d2418782bd741b6d9e034.tar.gz
wayland-ecf65fe0411403d57d6d2418782bd741b6d9e034.tar.xz
wayland-ecf65fe0411403d57d6d2418782bd741b6d9e034.zip
Implement user_data for surface
Not sure if we need more than one piece of user_data per surface. And this should be a general feature of any proxy object.
-rw-r--r--wayland-client.c13
-rw-r--r--wayland-client.h3
2 files changed, 16 insertions, 0 deletions
diff --git a/wayland-client.c b/wayland-client.c
index 3c977b2..e60d028 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 cb2bd29..13b4776 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,