[client] wayland: gracefully degrade when protocols are unsupported

zwp_relative_pointer_manager_v1 and zwp_pointer_constraints_v1 are
supported by GNOME/KDE/sway (and most other compositors), but they are
not a required part of the protocol.

Some users also run software in one-off nested compositors like cage[0]
for an extra layer of isolation; cage, at least, does not support
pointer captures.

This commit makes Looking Glass warn when an optional protocol is
unsupported, and fail if a required one is missing. Pointer grab paths
have a new guard against the aforementioned protocols being missing.

[0]: https://github.com/Hjdskes/cage
This commit is contained in:
Tudor Brindus
2021-01-16 13:01:30 -05:00
committed by Geoffrey McRae
parent 2a69a19dbd
commit 56c80a15e6
4 changed files with 28 additions and 8 deletions

View File

@@ -65,7 +65,7 @@ struct LG_DisplayServerOps
bool (*earlyInit)(void);
/* called after SDL has been initialized */
void (*init)(SDL_SysWMinfo * info);
bool (*init)(SDL_SysWMinfo * info);
/* called at startup after window creation, renderer and/or SPICE is ready */
void (*startup)();