summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorentin Chary <corentin.chary@gmail.com>2011-06-10 10:27:16 +0200
committerCorentin Chary <corentin.chary@gmail.com>2011-06-10 17:36:03 +0200
commitaa8e6ffa1f430067995f7ef3002fbfb53c456274 (patch)
tree7f04ef7c3363f7b87553499b400bcecbefde8263
parentdb1369a2065d9b34b5c829f515a659b48b35773d (diff)
When using mulitple global listener, don't forget to re-send previously cached global objects.HEADmaster
Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
-rw-r--r--wayland/wayland-client.c5
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;
}