summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wayland-server.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/wayland-server.c b/src/wayland-server.c
index b19e05b..d0c31bf 100644
--- a/src/wayland-server.c
+++ b/src/wayland-server.c
@@ -838,6 +838,7 @@ wl_display_add_global(struct wl_display *display,
void *data, wl_global_bind_func_t bind)
{
struct wl_global *global;
+ struct wl_client *client;
global = malloc(sizeof *global);
if (global == NULL)
@@ -849,6 +850,13 @@ wl_display_add_global(struct wl_display *display,
global->bind = bind;
wl_list_insert(display->global_list.prev, &global->link);
+ wl_list_for_each(client, &display->client_list, link)
+ wl_resource_post_event(client->display_resource,
+ WL_DISPLAY_GLOBAL,
+ global->name,
+ global->interface->name,
+ global->interface->version);
+
return global;
}