Call a new global listener for each existing global
authorCorentin Chary <corentin.chary@gmail.com>
Fri, 10 Jun 2011 08:27:16 +0000 (10:27 +0200)
committerKristian Høgsberg <krh@bitplanet.net>
Sat, 11 Jun 2011 21:32:54 +0000 (17:32 -0400)
Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
wayland/wayland-client.c

index 0852662..932f8b4 100644 (file)
@@ -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;
 }