window: use roundtrip instead of dispatch after get_registry

wl_display_dispatch() just dispatches events that are in
default and display queues and if there are no events,
then it will wait for them. But only dispatching
the events doesn't guarantee that we got all the global announcements,
we need to do sync too. Therefore use wl_display_roundtrip() instead
of wl_display_dispatch().

Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
dev
Marek Chalupa 10 years ago committed by Pekka Paalanen
parent 4c5a6f7a18
commit a519d06a53
  1. 2
      clients/window.c

@ -5527,7 +5527,7 @@ display_create(int *argc, char *argv[])
d->registry = wl_display_get_registry(d->display); d->registry = wl_display_get_registry(d->display);
wl_registry_add_listener(d->registry, &registry_listener, d); wl_registry_add_listener(d->registry, &registry_listener, d);
if (wl_display_dispatch(d->display) < 0) { if (wl_display_roundtrip(d->display) < 0) {
fprintf(stderr, "Failed to process Wayland connection: %m\n"); fprintf(stderr, "Failed to process Wayland connection: %m\n");
return NULL; return NULL;
} }

Loading…
Cancel
Save