diff options
author | Corentin Chary <corentin.chary@gmail.com> | 2011-06-10 10:27:16 +0200 |
---|---|---|
committer | Corentin Chary <corentin.chary@gmail.com> | 2011-06-10 17:36:19 +0200 |
commit | 7a198d72cfb3b28d722df0a529b69290c5d687e8 (patch) | |
tree | 339aa48b9eb78baff88b1f2040e9de1cdb273b5c | |
parent | c9d7501d9f27573b6554faf496c9ec8565830a1e (diff) |
When using mulitple global listener, don't forget to re-send previously cached global objects.woostri
Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
-rw-r--r-- | wayland/wayland-client.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/wayland/wayland-client.c b/wayland/wayland-client.c index 0852662..932f8b4 100644 --- a/wayland/wayland-client.c +++ b/wayland/wayland-client.c @@ -113,6 +113,7 @@ wl_display_add_global_listener(struct wl_display *display, wl_display_global_func_t handler, void *data) { struct wl_global_listener *listener; + struct wl_global *global; listener = malloc(sizeof *listener); if (listener == NULL) @@ -122,6 +123,10 @@ wl_display_add_global_listener(struct wl_display *display, listener->data = data; wl_list_insert(display->global_listener_list.prev, &listener->link); + wl_list_for_each(global, &display->global_list, link) + (*listener->handler)(display, global->id, global->interface, + global->version, listener->data); + return listener; } |