xwayland: add support for -noTouchPointerEmulation

This allows compositors to handle touch pointer emulation manually,
instead of having Xwayland do it [1].

[1]: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/691
This commit is contained in:
Simon Ser 2021-10-22 14:12:49 +02:00
parent 760e166578
commit 3e801d68f2
3 changed files with 15 additions and 1 deletions

View file

@ -22,6 +22,7 @@ struct wlr_xwayland_cursor;
struct wlr_xwayland_server_options {
bool lazy;
bool enable_wm;
bool no_touch_pointer_emulation;
};
struct wlr_xwayland_server {

View file

@ -1,7 +1,11 @@
have_listenfd = false
have_no_touch_pointer_emulation = false
if xwayland.found()
xwayland_path = xwayland.get_variable('xwayland')
have_listenfd = xwayland.get_variable('have_listenfd') == 'true'
have_listenfd = xwayland.get_variable('have_listenfd',
default_value: 'false') == 'true'
have_no_touch_pointer_emulation = xwayland.get_variable(
'have_no_touch_pointer_emulation', default_value: 'false') == 'true'
else
xwayland_path = xwayland_prog.full_path()
endif
@ -9,6 +13,7 @@ endif
xwayland_config_data = configuration_data()
xwayland_config_data.set_quoted('XWAYLAND_PATH', xwayland_path)
xwayland_config_data.set10('HAVE_XWAYLAND_LISTENFD', have_listenfd)
xwayland_config_data.set10('HAVE_XWAYLAND_NO_TOUCH_POINTER_EMULATION', have_no_touch_pointer_emulation)
configure_file(
output: 'config.h',
configuration: xwayland_config_data,

View file

@ -73,6 +73,14 @@ noreturn static void exec_xwayland(struct wlr_xwayland_server *server) {
argv[i++] = wmfd;
}
#if HAVE_XWAYLAND_NO_TOUCH_POINTER_EMULATION
if (server->options.no_touch_pointer_emulation) {
argv[i++] = "-noTouchPointerEmulation";
}
#else
server->options.no_touch_pointer_emulation = false;
#endif
argv[i++] = NULL;
assert(i < sizeof(argv) / sizeof(argv[0]));