diff options
| author | Kristian Høgsberg <krh@redhat.com> | 2008-12-21 22:50:32 -0500 |
|---|---|---|
| committer | Kristian Høgsberg <krh@redhat.com> | 2008-12-21 23:33:10 -0500 |
| commit | 8049cbb88a4d2c93cdee9188eeb1d219aebcd343 (patch) | |
| tree | 320f3cc0c4daef99d18351596ba1cbfbba9f0bae | |
| parent | Send client id range as an event. (diff) | |
| download | wayland-8049cbb88a4d2c93cdee9188eeb1d219aebcd343.tar wayland-8049cbb88a4d2c93cdee9188eeb1d219aebcd343.tar.gz wayland-8049cbb88a4d2c93cdee9188eeb1d219aebcd343.tar.bz2 wayland-8049cbb88a4d2c93cdee9188eeb1d219aebcd343.tar.lz wayland-8049cbb88a4d2c93cdee9188eeb1d219aebcd343.tar.xz wayland-8049cbb88a4d2c93cdee9188eeb1d219aebcd343.tar.zst wayland-8049cbb88a4d2c93cdee9188eeb1d219aebcd343.zip | |
Also check for interface version wl_display_get_object_id().
| -rw-r--r-- | screenshot.c | 2 | ||||
| -rw-r--r-- | wayland-client.c | 10 | ||||
| -rw-r--r-- | wayland-client.h | 2 |
3 files changed, 8 insertions, 6 deletions
diff --git a/screenshot.c b/screenshot.c index 931afa3..e3e677c 100644 --- a/screenshot.c +++ b/screenshot.c @@ -47,7 +47,7 @@ screenshooter_create(struct wl_display *display) struct screenshooter *screenshooter; uint32_t id; - id = wl_display_get_object_id(display, "screenshooter"); + id = wl_display_get_object_id(display, "screenshooter", 1); if (id == 0) { fprintf(stderr, "server doesn't support screenshooter interface\n"); return NULL; diff --git a/wayland-client.c b/wayland-client.c index 8a597f5..f3358b4 100644 --- a/wayland-client.c +++ b/wayland-client.c @@ -166,7 +166,7 @@ wl_display_create(const char *name, size_t name_size) wl_list_init(&display->visual_list); display->proxy.interface = &wl_display_interface; - display->proxy.id = wl_display_get_object_id(display, "display"); + display->proxy.id = wl_display_get_object_id(display, "display", 1); display->proxy.display = display; display->connection = wl_connection_create(display->fd, @@ -188,14 +188,16 @@ wl_display_destroy(struct wl_display *display) } WL_EXPORT uint32_t -wl_display_get_object_id(struct wl_display *display, const char *interface) +wl_display_get_object_id(struct wl_display *display, + const char *interface, uint32_t version) { struct wl_global *global; global = container_of(display->global_list.next, struct wl_global, link); while (&global->link != &display->global_list) { - if (strcmp(global->interface, interface) == 0) + if (strcmp(global->interface, interface) == 0 && + global->version >= version) return global->id; global = container_of(global->link.next, @@ -342,7 +344,7 @@ wl_display_get_compositor(struct wl_display *display) struct wl_compositor *compositor; uint32_t id; - id = wl_display_get_object_id(display, "compositor"); + id = wl_display_get_object_id(display, "compositor", 1); if (id == 0) return NULL; diff --git a/wayland-client.h b/wayland-client.h index 4f4adcc..1a41217 100644 --- a/wayland-client.h +++ b/wayland-client.h @@ -88,7 +88,7 @@ void wl_surface_damage(struct wl_surface *surface, * objects. */ uint32_t wl_display_get_object_id(struct wl_display *display, - const char *interface); + const char *interface, uint32_t version); uint32_t wl_display_allocate_id(struct wl_display *display); void wl_display_write(struct wl_display *display, const void *data, |
