xdg-shell: Fail xdg_surface creation when surface has role

If a given wl_surface already has a role (e.g. cursor or subsurface),
there is nothing you can do with an xdg_surface which won't raise an
error, apart from destroying it.

The xdg-shell spec does not specifically flag this as illegal, however
Mutter does already implement this behaviour. Creating an xdg_toplevel
or an xdg_popup from a surface which already has a role is definitively
illegal, which we already catch.

cf. wayland/wayland-protocols!92

Signed-off-by: Daniel Stone <daniels@collabora.com>
5 jobs for xdg-shell-no-xdg-surface-with-role in 2 minutes and 48 seconds (queued for 2 seconds)
latest
Status Job ID Name Coverage
  Container Prep
passed #9862487
container_prep

00:00:21

 
  Build
passed #9862489
kvm
build-docs

00:00:53

passed #9862488
kvm
build-full

00:02:12

passed #9862490
kvm
build-no-gl

00:01:06

 
  Pages
passed #9862491
docs-and-coverage

00:00:14