xdg-shell: Make xdg_surface fail when surface has role
It is illegal for a surface to have more than one role. The only thing which can be done with an xdg_surface (apart from destroying it) is to assign the surface a role with the get_toplevel, get_popup, etc requests. On Mutter, calling get_xdg_surface on a surface which already has an assigned role generates the 'role' protocol error. Weston will not send an error, however it may later abort on a failed assert during cleanup. wlroots allows this case, and only sends the role error when assigning an explicit role through creating a toplevel or popup. On the grounds that it makes no sense to create an xdg_surface for a wl_surface which already has a role, make it explicitly illegal. cf. weston!559, weston!627 Signed-off-by: Daniel Stone <daniels@collabora.com>
Loading
-
mentioned in commit daniels/weston@cb47df5f
-
mentioned in commit daniels/weston@b12f43fd
-
mentioned in commit daniels/weston@80e94822
Please register or sign in to comment