static void display_handle_global(struct wl_display *display, uint32_t id, const char *interface, uint32_t version, void *data) { struct display *d = data; if (strcmp(interface, "compositor") == 0) { d->compositor = wl_compositor_create(display, id); } else if (strcmp(interface, "output") == 0) { d->output = wl_output_create(display, id); wl_output_add_listener(d->output, &output_listener, d); } else if (strcmp(interface, "input_device") == 0) { display_add_input(d, id); } else if (strcmp(interface, "shell") == 0) { d->shell = wl_shell_create(display, id); wl_shell_add_listener(d->shell, &shell_listener, d); } else if (strcmp(interface, "drm") == 0) { d->drm = wl_drm_create(display, id); wl_drm_add_listener(d->drm, &drm_listener, d); } else if (strcmp(interface, "shm") == 0) { d->shm = wl_shm_create(display, id); } else if (strcmp(interface, "selection_offer") == 0) { add_selection_offer(d, id); } else if (d->global_handler) { d->global_handler(d, interface, id, version); } }
static void display_handle_global (struct wl_display *display, uint32_t id, const char *interface, uint32_t version, void *data) { ClutterBackendWayland *backend_wayland = data; if (strcmp (interface, "compositor") == 0) { backend_wayland->wayland_compositor = wl_compositor_create (display, id); } else if (strcmp (interface, "output") == 0) { backend_wayland->wayland_output = wl_output_create (display, id); wl_output_add_listener (backend_wayland->wayland_output, &output_listener, backend_wayland); } else if (strcmp (interface, "input_device") == 0) { _clutter_backend_add_input_device (backend_wayland, id); } else if (strcmp (interface, "shell") == 0) { backend_wayland->wayland_shell = wl_shell_create (display, id); wl_shell_add_listener (backend_wayland->wayland_shell, &shell_listener, backend_wayland); } else if (strcmp (interface, "drm") == 0) { backend_wayland->wayland_drm = wl_drm_create (display, id); wl_drm_add_listener (backend_wayland->wayland_drm, &drm_listener, backend_wayland); } else if (strcmp (interface, "shm") == 0) { backend_wayland->wayland_shm = wl_shm_create (display, id); } }