wayland: Update to recent API changes

This commit is contained in:
Kristian Høgsberg
2011-11-30 10:21:27 -05:00
parent f9c24e8f03
commit 0dd1f7edbc
5 changed files with 21 additions and 85 deletions

View File

@ -143,31 +143,6 @@ display_handle_mode(void *data,
{
}
static void
compositor_handle_visual(void *data,
struct wl_compositor *compositor,
uint32_t id, uint32_t token)
{
GdkDisplayWayland *d = data;
switch (token) {
case WL_COMPOSITOR_VISUAL_ARGB32:
d->argb_visual = wl_visual_create(d->wl_display, id, 1);
break;
case WL_COMPOSITOR_VISUAL_PREMULTIPLIED_ARGB32:
d->premultiplied_argb_visual =
wl_visual_create(d->wl_display, id, 1);
break;
case WL_COMPOSITOR_VISUAL_XRGB32:
d->rgb_visual = wl_visual_create(d->wl_display, id, 1);
break;
}
}
static const struct wl_compositor_listener compositor_listener = {
compositor_handle_visual,
};
static const struct wl_output_listener output_listener = {
output_handle_geometry,
display_handle_mode
@ -182,21 +157,21 @@ gdk_display_handle_global(struct wl_display *display, uint32_t id,
struct wl_input_device *input;
if (strcmp(interface, "wl_compositor") == 0) {
display_wayland->compositor = wl_compositor_create(display, id, 1);
wl_compositor_add_listener(display_wayland->compositor,
&compositor_listener, display_wayland);
display_wayland->compositor =
wl_display_bind(display, id, &wl_compositor_interface);
} else if (strcmp(interface, "wl_shm") == 0) {
display_wayland->shm = wl_shm_create(display, id, 1);
display_wayland->shm = wl_display_bind(display, id, &wl_shm_interface);
} else if (strcmp(interface, "wl_shell") == 0) {
display_wayland->shell = wl_shell_create(display, id, 1);
display_wayland->shell = wl_display_bind(display, id, &wl_shell_interface);
wl_shell_add_listener(display_wayland->shell,
&shell_listener, display_wayland);
} else if (strcmp(interface, "wl_output") == 0) {
display_wayland->output = wl_output_create(display, id, 1);
display_wayland->output =
wl_display_bind(display, id, &wl_output_interface);
wl_output_add_listener(display_wayland->output,
&output_listener, display_wayland);
} else if (strcmp(interface, "wl_input_device") == 0) {
input = wl_input_device_create(display, id, 1);
input = wl_display_bind(display, id, &wl_input_device_interface);
_gdk_wayland_device_manager_add_device (gdk_display->device_manager,
input);
}
@ -375,28 +350,16 @@ gdk_wayland_display_beep (GdkDisplay *display)
g_return_if_fail (GDK_IS_DISPLAY (display));
}
static void
sync_callback(void *data)
{
gboolean *done = data;
*done = TRUE;
}
static void
gdk_wayland_display_sync (GdkDisplay *display)
{
GdkDisplayWayland *display_wayland;
gboolean done;
g_return_if_fail (GDK_IS_DISPLAY (display));
display_wayland = GDK_DISPLAY_WAYLAND (display);
wl_display_sync_callback(display_wayland->wl_display, sync_callback, &done);
wl_display_iterate(display_wayland->wl_display, WL_DISPLAY_WRITABLE);
while (!done)
wl_display_iterate(display_wayland->wl_display, WL_DISPLAY_READABLE);
wl_display_roundtrip(display_wayland->wl_display);
}
static void