server: add wl_global_remove

This commit adds a new wl_global_remove function that just sends a global
remove event without destroying it. See [1] for details.

Removing a global is racy, because clients have no way to acknowledge they
received the removal event.

It's possible to mitigate the issue by sending the removal event, waiting a
little and then destructing the global for real. The "wait a little" part is
compositor policy.

[1]: wayland/wayland#10

Signed-off-by: Simon Ser <>
1 job for output-global-workaround in 1 minute and 14 seconds (queued for 1 second)
Status Job ID Name Coverage
passed #511801