xwayland: non-rootless requires the wl_shell protocol

When running non-rootless, Xwayland requires that the Wayland compositor
supports the wl_shell protocol.

Check for wl_shell protocol support at startup and exit cleanly if
missing rather than segfaulting later in ensure_surface_for_window()
while trying to use wl_shell_get_shell_surface().

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
(cherry picked from commit ffd02d9b26)
This commit is contained in:
Olivier Fourdan 2020-11-02 15:44:31 +01:00
parent b3ae038c32
commit 0811a9ff78

View File

@ -1202,6 +1202,11 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
&registry_listener, xwl_screen);
xwl_screen_roundtrip(xwl_screen);
if (!xwl_screen->rootless && !xwl_screen->shell) {
ErrorF("missing wl_shell protocol\n");
return FALSE;
}
bpc = xwl_screen->depth / 3;
green_bpc = xwl_screen->depth - 2 * bpc;
blue_mask = (1 << bpc) - 1;